Upload
amish
View
29
Download
0
Embed Size (px)
DESCRIPTION
Algorithmik. Formate, Codes & Algorithmen. (Datei-) Formate. Digitale Information = Bitsequenzen. Ein Bit ist eine atomare Information Einen Informations gehalt bekommt ein Bit, wenn es etwas repräsentiert z. B. schwanger / nicht schwanger - PowerPoint PPT Presentation
Citation preview
AlgorithmikFormate Codes amp Algorithmen
(Datei-) Formate
Digitale Information = Bitsequenzen
Ein Bit ist eine atomare Information
Einen Informationsgehalt bekommt ein Bit wenn es etwas repraumlsentiert z B schwanger nicht schwanger
Mehrere Bits koumlnnen komplexere Informationen repraumlsentieren zB Zahlen Farben (oft
Datentypen)
Dazu muss man wissen wofuumlr eine bestimmte Bitsequenz (=Zeichen) steht und das wird komplizierter wenn
es nicht nur um eine Farbe einen Buchstaben geht sondern bspw um ein ganzes Dokument
Information existiert nicht in reiner Formeine Formulierung von Information kann fuumlr vieles stehen (repraumlsentieren)
1 oder 0 Sein oder nicht
Seintrue oder false
Definition (Daten-Datei-) Format Ein Format ist eine spezifische Anordnung von Daten
(Bits) fuumlr Speicherung Weiterverarbeitung Ausgabe etc
Ein Format definiert so etwas wie eine Erwartungshaltung in welcher Form (digitale) Information vorliegt Das betrifft 1 die Anordnung (wie teilt man die Sequenz in Zeichen
auf)
2 die Codierung (fuumlr was steht ein ZeichenBitsequenz)
Diese groumlsstenteils impliziten (also nicht in der Sequenz enthaltenen) Informationen muumlssen allen Beteiligten bekannt sein ndash nur so kann man herausfinden wofuumlr die expliziten Informationen (Bitsequenz) stehen
Universalitaumlt vs Speicherplatzbedarf Ein Format macht nur Sinn wenn es (fuumlr einen
gewissen Bereich) universell ist also bspw alle Fotos speichern kann nicht nur die gruumlnen
Andererseits benoumltigt diese Universalitaumlt Speicherplatz und ist nicht immer einfach festzulegen macht es beispielsweise Sinn in DOC Unicode zu benutzen nur damit die Chinesen dasselbe Format haben
oder sollte man Meta-Informationen einbauen so dass zB die Codierung ausgetauscht oder explizit mitgeschickt werden kann
Digitale Repraumlsentation von Schach
Was ist wichtig nur die Information die einen
Spielstande eindeutig definiert
Was ist moumlglich alle Spielstaumlnde muumlssen repraumlsentiert
werden koumlnnen
Welche Informationen codiert man (explizit) als Zeichen welche (implizit) in der Anordnung
es geht nicht um maximale Effizienz man muss aber trotzdem keinen Speicherplatz verschwenden Vorschlaumlge
Wie viele Bits brauchen Sie
oder ein universeller digitale Koffer fuumlr Schach
Ein Schach Format (sch) 257 BIT
Das erste Bit gibt an wer am Zug ist (1=schwarz 0=weiss)
Die folgenden 256 Bit repraumlsentieren die Belegung der 64 Felder mit jeweils 4 Bit pro Feld (nummeriert zeilenweise von links nach rechts dann spaltenweise von oben nach unten)
Das erste Bit pro Feld steht fuumlr die Farbe der Figur
Die letzten 3 Bit pro Feld stehen fuumlr die Figur die hier steht
1 = schwarz
000 = leer001 = Bauer010 = Turm011 = Springer
0 = weiss
100 = Pferd101 = Dame110 = Koumlnig111 = steht fuumlr nichts
Ein Format fuumlr Schieber-Jass Das Spiel 4 Spieler haben zu Beginn je 9
Karten spielen sie reihum aus und nach jeder Runde wandern 4 Karten auf den einen oder anderen Stapel von gespielten Karten
Aufgabe erfinden Sie ein Format mit dem jeder moumlgliche Zustand des Spiels binaumlr repraumlsentiert werden kann Formulieren Sie die von Ihnen erfundene
Codierung so dass ein anderer Schuumller eine entsprechende Bitsequenz in den Spielzustand zuruumlckuumlbersetzen koumlnnte
Geben Sie an wie viele Bits fuumlr die Speicherung eines Spielzustands benoumltigt werden
Und woher weiss der Computer welches Format eine Datei hat
Die meisten Datei-Formate haben einen header in dem 1 sie sich vorstellen und 2 zusaumltzliche Angaben zur
Formatierung machen zB
bull VersionVariation des Formats
bull Parameterbull allgemeine
Zusatzinformationen
1 Endung2 Header Diese
Informationen sagen dem Computer welche Brille er anziehen muss
Beispielrtf rtf1ansiansicpg1252cocoartf1038cocoasubrtf250
fonttblf0fnilfcharset0 GoudyOldStyleT-Regular
colortblred255green255blue255red6green10blue58
paperw11900paperh16840margl1440margr1440vieww9000viewh8 400viewkind0
pardtx566tx1133tx1700tx2267tx2834tx3401tx3968tx4535tx5102t x5669tx6236tx6803qlqnaturalpardirnatural
f0fs36
cf2
Lirum
b larum b0
L lsquof6ffelstiel
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
RTF (Rich Text Format) Entwickelt von Microsoft aber frei verfuumlgbar Basierend auf Standard-Codetabellen (ASCII
UNICODE) Lesbar von allen gaumlngigen Texteditoren wobei
uU Teile der Layout-Information ignoriert werden
RTF Spezifikationen Syntax ltheadergt ltdocumentgt Der header beinhalten Kontrollwoumlrter die mit
Backslash anfangen und mit Leerzeichen getrennt werden
Im header wird zusaumltzliche Layoutinformation repraumlsentiert zB Schriftfarbe oder Schrifttyp
RTF kann mit verschiedenen Versionen von ASCII oder UNICODE Zeichen umgehen (Meta-Information im header)
Bei RTF wird implizit angenommen dass die entsprechenden Codetabellen verfuumlgbar sind und dass die Bloumlcke innerhalb der Bitsequenz in der richtigen Reihenfolge vorliegen
Zusammenfassung RTF kann mehr als TXT und weniger als DOC
das ist seine bdquodigitale Nischeldquo RTF ermoumlglicht die Repraumlsentation von
allgemeinen Layoutinformation durch standardisierte Kontrollwoumlrter im header
Das Layout fuumlr Textteile geschieht durch Auszeichnung des Dokuments mit Kontrollwoumlrtern im Text (wie HTML)
Bildinformation in einem etwas
speziellen Format
Die Brille implementiert die
Decodierung
Das Format gibt an welche Brille
man braucht
Eine Analogie zur Zusammenfassung
Konzepte Beispiele Format
Header Endung Zeichen explizite amp implizite
Bestandteile Universalitaumlt
Eigene Formate fuumlr Spiele
rtf
Datei Raetsel
ltsvg version=11ldquo
xmlns=httpwwww3org2000svg
xmlnsxlink=httpwwww3org1999xlink
xmlnsa=httpnsadobecomAdobeSVGViewerExtensions30ldquo
x=0px y=0px width=400px height=400px viewBox=0 0 400
400ldquo
enable-background=new 0 0 400 400 xmlspace=preservegt
ltdefsgt ltdefsgt
ltrect fill=FF0000 stroke=none x=0 y=0 width=400
height=400gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=350250
50250 50150 350150gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=250350
150350 15050 25050gt
ltsvggt
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
Grafikformate
und verlustbehaftete Komprimierung
Wie viel Information ist noumltig
Anfangs- und Endpunkt definieren die Linie eindeutig
Mittelpunkt und Radius definieren den Kreis eindeutig
Die Eckpunkte definieren das Polygon eindeutig
Vektorgrafik
Mit allgemeinen Kurven (zB Bezier Kurven) und noch mehr Parametern kann man jede beliebige Form berechen
kann zu extrem geringen Dateigroumlssen fuumlhren
Vektorgrafiken sind beliebig skalierbar
26 Kb
26 Kb
Reine Vektorgrafikformate Sind nicht weit verbreitet meist proprietaumlr in
Verbindung mit einem Editor ndash zB Adobe Illustrator (ai)
Ausnahme SVG (scalable vector graphics) Benutzt werden Vektorgrafiken aber oft in
Kombination zB einzelne Ebenen in Photoshop Vektor-Fonts Zeichnungen in Word oder Powerpoint in Druckformaten (PDF EPS)
Interessant pptx hacken
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
(Datei-) Formate
Digitale Information = Bitsequenzen
Ein Bit ist eine atomare Information
Einen Informationsgehalt bekommt ein Bit wenn es etwas repraumlsentiert z B schwanger nicht schwanger
Mehrere Bits koumlnnen komplexere Informationen repraumlsentieren zB Zahlen Farben (oft
Datentypen)
Dazu muss man wissen wofuumlr eine bestimmte Bitsequenz (=Zeichen) steht und das wird komplizierter wenn
es nicht nur um eine Farbe einen Buchstaben geht sondern bspw um ein ganzes Dokument
Information existiert nicht in reiner Formeine Formulierung von Information kann fuumlr vieles stehen (repraumlsentieren)
1 oder 0 Sein oder nicht
Seintrue oder false
Definition (Daten-Datei-) Format Ein Format ist eine spezifische Anordnung von Daten
(Bits) fuumlr Speicherung Weiterverarbeitung Ausgabe etc
Ein Format definiert so etwas wie eine Erwartungshaltung in welcher Form (digitale) Information vorliegt Das betrifft 1 die Anordnung (wie teilt man die Sequenz in Zeichen
auf)
2 die Codierung (fuumlr was steht ein ZeichenBitsequenz)
Diese groumlsstenteils impliziten (also nicht in der Sequenz enthaltenen) Informationen muumlssen allen Beteiligten bekannt sein ndash nur so kann man herausfinden wofuumlr die expliziten Informationen (Bitsequenz) stehen
Universalitaumlt vs Speicherplatzbedarf Ein Format macht nur Sinn wenn es (fuumlr einen
gewissen Bereich) universell ist also bspw alle Fotos speichern kann nicht nur die gruumlnen
Andererseits benoumltigt diese Universalitaumlt Speicherplatz und ist nicht immer einfach festzulegen macht es beispielsweise Sinn in DOC Unicode zu benutzen nur damit die Chinesen dasselbe Format haben
oder sollte man Meta-Informationen einbauen so dass zB die Codierung ausgetauscht oder explizit mitgeschickt werden kann
Digitale Repraumlsentation von Schach
Was ist wichtig nur die Information die einen
Spielstande eindeutig definiert
Was ist moumlglich alle Spielstaumlnde muumlssen repraumlsentiert
werden koumlnnen
Welche Informationen codiert man (explizit) als Zeichen welche (implizit) in der Anordnung
es geht nicht um maximale Effizienz man muss aber trotzdem keinen Speicherplatz verschwenden Vorschlaumlge
Wie viele Bits brauchen Sie
oder ein universeller digitale Koffer fuumlr Schach
Ein Schach Format (sch) 257 BIT
Das erste Bit gibt an wer am Zug ist (1=schwarz 0=weiss)
Die folgenden 256 Bit repraumlsentieren die Belegung der 64 Felder mit jeweils 4 Bit pro Feld (nummeriert zeilenweise von links nach rechts dann spaltenweise von oben nach unten)
Das erste Bit pro Feld steht fuumlr die Farbe der Figur
Die letzten 3 Bit pro Feld stehen fuumlr die Figur die hier steht
1 = schwarz
000 = leer001 = Bauer010 = Turm011 = Springer
0 = weiss
100 = Pferd101 = Dame110 = Koumlnig111 = steht fuumlr nichts
Ein Format fuumlr Schieber-Jass Das Spiel 4 Spieler haben zu Beginn je 9
Karten spielen sie reihum aus und nach jeder Runde wandern 4 Karten auf den einen oder anderen Stapel von gespielten Karten
Aufgabe erfinden Sie ein Format mit dem jeder moumlgliche Zustand des Spiels binaumlr repraumlsentiert werden kann Formulieren Sie die von Ihnen erfundene
Codierung so dass ein anderer Schuumller eine entsprechende Bitsequenz in den Spielzustand zuruumlckuumlbersetzen koumlnnte
Geben Sie an wie viele Bits fuumlr die Speicherung eines Spielzustands benoumltigt werden
Und woher weiss der Computer welches Format eine Datei hat
Die meisten Datei-Formate haben einen header in dem 1 sie sich vorstellen und 2 zusaumltzliche Angaben zur
Formatierung machen zB
bull VersionVariation des Formats
bull Parameterbull allgemeine
Zusatzinformationen
1 Endung2 Header Diese
Informationen sagen dem Computer welche Brille er anziehen muss
Beispielrtf rtf1ansiansicpg1252cocoartf1038cocoasubrtf250
fonttblf0fnilfcharset0 GoudyOldStyleT-Regular
colortblred255green255blue255red6green10blue58
paperw11900paperh16840margl1440margr1440vieww9000viewh8 400viewkind0
pardtx566tx1133tx1700tx2267tx2834tx3401tx3968tx4535tx5102t x5669tx6236tx6803qlqnaturalpardirnatural
f0fs36
cf2
Lirum
b larum b0
L lsquof6ffelstiel
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
RTF (Rich Text Format) Entwickelt von Microsoft aber frei verfuumlgbar Basierend auf Standard-Codetabellen (ASCII
UNICODE) Lesbar von allen gaumlngigen Texteditoren wobei
uU Teile der Layout-Information ignoriert werden
RTF Spezifikationen Syntax ltheadergt ltdocumentgt Der header beinhalten Kontrollwoumlrter die mit
Backslash anfangen und mit Leerzeichen getrennt werden
Im header wird zusaumltzliche Layoutinformation repraumlsentiert zB Schriftfarbe oder Schrifttyp
RTF kann mit verschiedenen Versionen von ASCII oder UNICODE Zeichen umgehen (Meta-Information im header)
Bei RTF wird implizit angenommen dass die entsprechenden Codetabellen verfuumlgbar sind und dass die Bloumlcke innerhalb der Bitsequenz in der richtigen Reihenfolge vorliegen
Zusammenfassung RTF kann mehr als TXT und weniger als DOC
das ist seine bdquodigitale Nischeldquo RTF ermoumlglicht die Repraumlsentation von
allgemeinen Layoutinformation durch standardisierte Kontrollwoumlrter im header
Das Layout fuumlr Textteile geschieht durch Auszeichnung des Dokuments mit Kontrollwoumlrtern im Text (wie HTML)
Bildinformation in einem etwas
speziellen Format
Die Brille implementiert die
Decodierung
Das Format gibt an welche Brille
man braucht
Eine Analogie zur Zusammenfassung
Konzepte Beispiele Format
Header Endung Zeichen explizite amp implizite
Bestandteile Universalitaumlt
Eigene Formate fuumlr Spiele
rtf
Datei Raetsel
ltsvg version=11ldquo
xmlns=httpwwww3org2000svg
xmlnsxlink=httpwwww3org1999xlink
xmlnsa=httpnsadobecomAdobeSVGViewerExtensions30ldquo
x=0px y=0px width=400px height=400px viewBox=0 0 400
400ldquo
enable-background=new 0 0 400 400 xmlspace=preservegt
ltdefsgt ltdefsgt
ltrect fill=FF0000 stroke=none x=0 y=0 width=400
height=400gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=350250
50250 50150 350150gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=250350
150350 15050 25050gt
ltsvggt
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
Grafikformate
und verlustbehaftete Komprimierung
Wie viel Information ist noumltig
Anfangs- und Endpunkt definieren die Linie eindeutig
Mittelpunkt und Radius definieren den Kreis eindeutig
Die Eckpunkte definieren das Polygon eindeutig
Vektorgrafik
Mit allgemeinen Kurven (zB Bezier Kurven) und noch mehr Parametern kann man jede beliebige Form berechen
kann zu extrem geringen Dateigroumlssen fuumlhren
Vektorgrafiken sind beliebig skalierbar
26 Kb
26 Kb
Reine Vektorgrafikformate Sind nicht weit verbreitet meist proprietaumlr in
Verbindung mit einem Editor ndash zB Adobe Illustrator (ai)
Ausnahme SVG (scalable vector graphics) Benutzt werden Vektorgrafiken aber oft in
Kombination zB einzelne Ebenen in Photoshop Vektor-Fonts Zeichnungen in Word oder Powerpoint in Druckformaten (PDF EPS)
Interessant pptx hacken
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Digitale Information = Bitsequenzen
Ein Bit ist eine atomare Information
Einen Informationsgehalt bekommt ein Bit wenn es etwas repraumlsentiert z B schwanger nicht schwanger
Mehrere Bits koumlnnen komplexere Informationen repraumlsentieren zB Zahlen Farben (oft
Datentypen)
Dazu muss man wissen wofuumlr eine bestimmte Bitsequenz (=Zeichen) steht und das wird komplizierter wenn
es nicht nur um eine Farbe einen Buchstaben geht sondern bspw um ein ganzes Dokument
Information existiert nicht in reiner Formeine Formulierung von Information kann fuumlr vieles stehen (repraumlsentieren)
1 oder 0 Sein oder nicht
Seintrue oder false
Definition (Daten-Datei-) Format Ein Format ist eine spezifische Anordnung von Daten
(Bits) fuumlr Speicherung Weiterverarbeitung Ausgabe etc
Ein Format definiert so etwas wie eine Erwartungshaltung in welcher Form (digitale) Information vorliegt Das betrifft 1 die Anordnung (wie teilt man die Sequenz in Zeichen
auf)
2 die Codierung (fuumlr was steht ein ZeichenBitsequenz)
Diese groumlsstenteils impliziten (also nicht in der Sequenz enthaltenen) Informationen muumlssen allen Beteiligten bekannt sein ndash nur so kann man herausfinden wofuumlr die expliziten Informationen (Bitsequenz) stehen
Universalitaumlt vs Speicherplatzbedarf Ein Format macht nur Sinn wenn es (fuumlr einen
gewissen Bereich) universell ist also bspw alle Fotos speichern kann nicht nur die gruumlnen
Andererseits benoumltigt diese Universalitaumlt Speicherplatz und ist nicht immer einfach festzulegen macht es beispielsweise Sinn in DOC Unicode zu benutzen nur damit die Chinesen dasselbe Format haben
oder sollte man Meta-Informationen einbauen so dass zB die Codierung ausgetauscht oder explizit mitgeschickt werden kann
Digitale Repraumlsentation von Schach
Was ist wichtig nur die Information die einen
Spielstande eindeutig definiert
Was ist moumlglich alle Spielstaumlnde muumlssen repraumlsentiert
werden koumlnnen
Welche Informationen codiert man (explizit) als Zeichen welche (implizit) in der Anordnung
es geht nicht um maximale Effizienz man muss aber trotzdem keinen Speicherplatz verschwenden Vorschlaumlge
Wie viele Bits brauchen Sie
oder ein universeller digitale Koffer fuumlr Schach
Ein Schach Format (sch) 257 BIT
Das erste Bit gibt an wer am Zug ist (1=schwarz 0=weiss)
Die folgenden 256 Bit repraumlsentieren die Belegung der 64 Felder mit jeweils 4 Bit pro Feld (nummeriert zeilenweise von links nach rechts dann spaltenweise von oben nach unten)
Das erste Bit pro Feld steht fuumlr die Farbe der Figur
Die letzten 3 Bit pro Feld stehen fuumlr die Figur die hier steht
1 = schwarz
000 = leer001 = Bauer010 = Turm011 = Springer
0 = weiss
100 = Pferd101 = Dame110 = Koumlnig111 = steht fuumlr nichts
Ein Format fuumlr Schieber-Jass Das Spiel 4 Spieler haben zu Beginn je 9
Karten spielen sie reihum aus und nach jeder Runde wandern 4 Karten auf den einen oder anderen Stapel von gespielten Karten
Aufgabe erfinden Sie ein Format mit dem jeder moumlgliche Zustand des Spiels binaumlr repraumlsentiert werden kann Formulieren Sie die von Ihnen erfundene
Codierung so dass ein anderer Schuumller eine entsprechende Bitsequenz in den Spielzustand zuruumlckuumlbersetzen koumlnnte
Geben Sie an wie viele Bits fuumlr die Speicherung eines Spielzustands benoumltigt werden
Und woher weiss der Computer welches Format eine Datei hat
Die meisten Datei-Formate haben einen header in dem 1 sie sich vorstellen und 2 zusaumltzliche Angaben zur
Formatierung machen zB
bull VersionVariation des Formats
bull Parameterbull allgemeine
Zusatzinformationen
1 Endung2 Header Diese
Informationen sagen dem Computer welche Brille er anziehen muss
Beispielrtf rtf1ansiansicpg1252cocoartf1038cocoasubrtf250
fonttblf0fnilfcharset0 GoudyOldStyleT-Regular
colortblred255green255blue255red6green10blue58
paperw11900paperh16840margl1440margr1440vieww9000viewh8 400viewkind0
pardtx566tx1133tx1700tx2267tx2834tx3401tx3968tx4535tx5102t x5669tx6236tx6803qlqnaturalpardirnatural
f0fs36
cf2
Lirum
b larum b0
L lsquof6ffelstiel
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
RTF (Rich Text Format) Entwickelt von Microsoft aber frei verfuumlgbar Basierend auf Standard-Codetabellen (ASCII
UNICODE) Lesbar von allen gaumlngigen Texteditoren wobei
uU Teile der Layout-Information ignoriert werden
RTF Spezifikationen Syntax ltheadergt ltdocumentgt Der header beinhalten Kontrollwoumlrter die mit
Backslash anfangen und mit Leerzeichen getrennt werden
Im header wird zusaumltzliche Layoutinformation repraumlsentiert zB Schriftfarbe oder Schrifttyp
RTF kann mit verschiedenen Versionen von ASCII oder UNICODE Zeichen umgehen (Meta-Information im header)
Bei RTF wird implizit angenommen dass die entsprechenden Codetabellen verfuumlgbar sind und dass die Bloumlcke innerhalb der Bitsequenz in der richtigen Reihenfolge vorliegen
Zusammenfassung RTF kann mehr als TXT und weniger als DOC
das ist seine bdquodigitale Nischeldquo RTF ermoumlglicht die Repraumlsentation von
allgemeinen Layoutinformation durch standardisierte Kontrollwoumlrter im header
Das Layout fuumlr Textteile geschieht durch Auszeichnung des Dokuments mit Kontrollwoumlrtern im Text (wie HTML)
Bildinformation in einem etwas
speziellen Format
Die Brille implementiert die
Decodierung
Das Format gibt an welche Brille
man braucht
Eine Analogie zur Zusammenfassung
Konzepte Beispiele Format
Header Endung Zeichen explizite amp implizite
Bestandteile Universalitaumlt
Eigene Formate fuumlr Spiele
rtf
Datei Raetsel
ltsvg version=11ldquo
xmlns=httpwwww3org2000svg
xmlnsxlink=httpwwww3org1999xlink
xmlnsa=httpnsadobecomAdobeSVGViewerExtensions30ldquo
x=0px y=0px width=400px height=400px viewBox=0 0 400
400ldquo
enable-background=new 0 0 400 400 xmlspace=preservegt
ltdefsgt ltdefsgt
ltrect fill=FF0000 stroke=none x=0 y=0 width=400
height=400gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=350250
50250 50150 350150gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=250350
150350 15050 25050gt
ltsvggt
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
Grafikformate
und verlustbehaftete Komprimierung
Wie viel Information ist noumltig
Anfangs- und Endpunkt definieren die Linie eindeutig
Mittelpunkt und Radius definieren den Kreis eindeutig
Die Eckpunkte definieren das Polygon eindeutig
Vektorgrafik
Mit allgemeinen Kurven (zB Bezier Kurven) und noch mehr Parametern kann man jede beliebige Form berechen
kann zu extrem geringen Dateigroumlssen fuumlhren
Vektorgrafiken sind beliebig skalierbar
26 Kb
26 Kb
Reine Vektorgrafikformate Sind nicht weit verbreitet meist proprietaumlr in
Verbindung mit einem Editor ndash zB Adobe Illustrator (ai)
Ausnahme SVG (scalable vector graphics) Benutzt werden Vektorgrafiken aber oft in
Kombination zB einzelne Ebenen in Photoshop Vektor-Fonts Zeichnungen in Word oder Powerpoint in Druckformaten (PDF EPS)
Interessant pptx hacken
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Definition (Daten-Datei-) Format Ein Format ist eine spezifische Anordnung von Daten
(Bits) fuumlr Speicherung Weiterverarbeitung Ausgabe etc
Ein Format definiert so etwas wie eine Erwartungshaltung in welcher Form (digitale) Information vorliegt Das betrifft 1 die Anordnung (wie teilt man die Sequenz in Zeichen
auf)
2 die Codierung (fuumlr was steht ein ZeichenBitsequenz)
Diese groumlsstenteils impliziten (also nicht in der Sequenz enthaltenen) Informationen muumlssen allen Beteiligten bekannt sein ndash nur so kann man herausfinden wofuumlr die expliziten Informationen (Bitsequenz) stehen
Universalitaumlt vs Speicherplatzbedarf Ein Format macht nur Sinn wenn es (fuumlr einen
gewissen Bereich) universell ist also bspw alle Fotos speichern kann nicht nur die gruumlnen
Andererseits benoumltigt diese Universalitaumlt Speicherplatz und ist nicht immer einfach festzulegen macht es beispielsweise Sinn in DOC Unicode zu benutzen nur damit die Chinesen dasselbe Format haben
oder sollte man Meta-Informationen einbauen so dass zB die Codierung ausgetauscht oder explizit mitgeschickt werden kann
Digitale Repraumlsentation von Schach
Was ist wichtig nur die Information die einen
Spielstande eindeutig definiert
Was ist moumlglich alle Spielstaumlnde muumlssen repraumlsentiert
werden koumlnnen
Welche Informationen codiert man (explizit) als Zeichen welche (implizit) in der Anordnung
es geht nicht um maximale Effizienz man muss aber trotzdem keinen Speicherplatz verschwenden Vorschlaumlge
Wie viele Bits brauchen Sie
oder ein universeller digitale Koffer fuumlr Schach
Ein Schach Format (sch) 257 BIT
Das erste Bit gibt an wer am Zug ist (1=schwarz 0=weiss)
Die folgenden 256 Bit repraumlsentieren die Belegung der 64 Felder mit jeweils 4 Bit pro Feld (nummeriert zeilenweise von links nach rechts dann spaltenweise von oben nach unten)
Das erste Bit pro Feld steht fuumlr die Farbe der Figur
Die letzten 3 Bit pro Feld stehen fuumlr die Figur die hier steht
1 = schwarz
000 = leer001 = Bauer010 = Turm011 = Springer
0 = weiss
100 = Pferd101 = Dame110 = Koumlnig111 = steht fuumlr nichts
Ein Format fuumlr Schieber-Jass Das Spiel 4 Spieler haben zu Beginn je 9
Karten spielen sie reihum aus und nach jeder Runde wandern 4 Karten auf den einen oder anderen Stapel von gespielten Karten
Aufgabe erfinden Sie ein Format mit dem jeder moumlgliche Zustand des Spiels binaumlr repraumlsentiert werden kann Formulieren Sie die von Ihnen erfundene
Codierung so dass ein anderer Schuumller eine entsprechende Bitsequenz in den Spielzustand zuruumlckuumlbersetzen koumlnnte
Geben Sie an wie viele Bits fuumlr die Speicherung eines Spielzustands benoumltigt werden
Und woher weiss der Computer welches Format eine Datei hat
Die meisten Datei-Formate haben einen header in dem 1 sie sich vorstellen und 2 zusaumltzliche Angaben zur
Formatierung machen zB
bull VersionVariation des Formats
bull Parameterbull allgemeine
Zusatzinformationen
1 Endung2 Header Diese
Informationen sagen dem Computer welche Brille er anziehen muss
Beispielrtf rtf1ansiansicpg1252cocoartf1038cocoasubrtf250
fonttblf0fnilfcharset0 GoudyOldStyleT-Regular
colortblred255green255blue255red6green10blue58
paperw11900paperh16840margl1440margr1440vieww9000viewh8 400viewkind0
pardtx566tx1133tx1700tx2267tx2834tx3401tx3968tx4535tx5102t x5669tx6236tx6803qlqnaturalpardirnatural
f0fs36
cf2
Lirum
b larum b0
L lsquof6ffelstiel
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
RTF (Rich Text Format) Entwickelt von Microsoft aber frei verfuumlgbar Basierend auf Standard-Codetabellen (ASCII
UNICODE) Lesbar von allen gaumlngigen Texteditoren wobei
uU Teile der Layout-Information ignoriert werden
RTF Spezifikationen Syntax ltheadergt ltdocumentgt Der header beinhalten Kontrollwoumlrter die mit
Backslash anfangen und mit Leerzeichen getrennt werden
Im header wird zusaumltzliche Layoutinformation repraumlsentiert zB Schriftfarbe oder Schrifttyp
RTF kann mit verschiedenen Versionen von ASCII oder UNICODE Zeichen umgehen (Meta-Information im header)
Bei RTF wird implizit angenommen dass die entsprechenden Codetabellen verfuumlgbar sind und dass die Bloumlcke innerhalb der Bitsequenz in der richtigen Reihenfolge vorliegen
Zusammenfassung RTF kann mehr als TXT und weniger als DOC
das ist seine bdquodigitale Nischeldquo RTF ermoumlglicht die Repraumlsentation von
allgemeinen Layoutinformation durch standardisierte Kontrollwoumlrter im header
Das Layout fuumlr Textteile geschieht durch Auszeichnung des Dokuments mit Kontrollwoumlrtern im Text (wie HTML)
Bildinformation in einem etwas
speziellen Format
Die Brille implementiert die
Decodierung
Das Format gibt an welche Brille
man braucht
Eine Analogie zur Zusammenfassung
Konzepte Beispiele Format
Header Endung Zeichen explizite amp implizite
Bestandteile Universalitaumlt
Eigene Formate fuumlr Spiele
rtf
Datei Raetsel
ltsvg version=11ldquo
xmlns=httpwwww3org2000svg
xmlnsxlink=httpwwww3org1999xlink
xmlnsa=httpnsadobecomAdobeSVGViewerExtensions30ldquo
x=0px y=0px width=400px height=400px viewBox=0 0 400
400ldquo
enable-background=new 0 0 400 400 xmlspace=preservegt
ltdefsgt ltdefsgt
ltrect fill=FF0000 stroke=none x=0 y=0 width=400
height=400gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=350250
50250 50150 350150gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=250350
150350 15050 25050gt
ltsvggt
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
Grafikformate
und verlustbehaftete Komprimierung
Wie viel Information ist noumltig
Anfangs- und Endpunkt definieren die Linie eindeutig
Mittelpunkt und Radius definieren den Kreis eindeutig
Die Eckpunkte definieren das Polygon eindeutig
Vektorgrafik
Mit allgemeinen Kurven (zB Bezier Kurven) und noch mehr Parametern kann man jede beliebige Form berechen
kann zu extrem geringen Dateigroumlssen fuumlhren
Vektorgrafiken sind beliebig skalierbar
26 Kb
26 Kb
Reine Vektorgrafikformate Sind nicht weit verbreitet meist proprietaumlr in
Verbindung mit einem Editor ndash zB Adobe Illustrator (ai)
Ausnahme SVG (scalable vector graphics) Benutzt werden Vektorgrafiken aber oft in
Kombination zB einzelne Ebenen in Photoshop Vektor-Fonts Zeichnungen in Word oder Powerpoint in Druckformaten (PDF EPS)
Interessant pptx hacken
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Universalitaumlt vs Speicherplatzbedarf Ein Format macht nur Sinn wenn es (fuumlr einen
gewissen Bereich) universell ist also bspw alle Fotos speichern kann nicht nur die gruumlnen
Andererseits benoumltigt diese Universalitaumlt Speicherplatz und ist nicht immer einfach festzulegen macht es beispielsweise Sinn in DOC Unicode zu benutzen nur damit die Chinesen dasselbe Format haben
oder sollte man Meta-Informationen einbauen so dass zB die Codierung ausgetauscht oder explizit mitgeschickt werden kann
Digitale Repraumlsentation von Schach
Was ist wichtig nur die Information die einen
Spielstande eindeutig definiert
Was ist moumlglich alle Spielstaumlnde muumlssen repraumlsentiert
werden koumlnnen
Welche Informationen codiert man (explizit) als Zeichen welche (implizit) in der Anordnung
es geht nicht um maximale Effizienz man muss aber trotzdem keinen Speicherplatz verschwenden Vorschlaumlge
Wie viele Bits brauchen Sie
oder ein universeller digitale Koffer fuumlr Schach
Ein Schach Format (sch) 257 BIT
Das erste Bit gibt an wer am Zug ist (1=schwarz 0=weiss)
Die folgenden 256 Bit repraumlsentieren die Belegung der 64 Felder mit jeweils 4 Bit pro Feld (nummeriert zeilenweise von links nach rechts dann spaltenweise von oben nach unten)
Das erste Bit pro Feld steht fuumlr die Farbe der Figur
Die letzten 3 Bit pro Feld stehen fuumlr die Figur die hier steht
1 = schwarz
000 = leer001 = Bauer010 = Turm011 = Springer
0 = weiss
100 = Pferd101 = Dame110 = Koumlnig111 = steht fuumlr nichts
Ein Format fuumlr Schieber-Jass Das Spiel 4 Spieler haben zu Beginn je 9
Karten spielen sie reihum aus und nach jeder Runde wandern 4 Karten auf den einen oder anderen Stapel von gespielten Karten
Aufgabe erfinden Sie ein Format mit dem jeder moumlgliche Zustand des Spiels binaumlr repraumlsentiert werden kann Formulieren Sie die von Ihnen erfundene
Codierung so dass ein anderer Schuumller eine entsprechende Bitsequenz in den Spielzustand zuruumlckuumlbersetzen koumlnnte
Geben Sie an wie viele Bits fuumlr die Speicherung eines Spielzustands benoumltigt werden
Und woher weiss der Computer welches Format eine Datei hat
Die meisten Datei-Formate haben einen header in dem 1 sie sich vorstellen und 2 zusaumltzliche Angaben zur
Formatierung machen zB
bull VersionVariation des Formats
bull Parameterbull allgemeine
Zusatzinformationen
1 Endung2 Header Diese
Informationen sagen dem Computer welche Brille er anziehen muss
Beispielrtf rtf1ansiansicpg1252cocoartf1038cocoasubrtf250
fonttblf0fnilfcharset0 GoudyOldStyleT-Regular
colortblred255green255blue255red6green10blue58
paperw11900paperh16840margl1440margr1440vieww9000viewh8 400viewkind0
pardtx566tx1133tx1700tx2267tx2834tx3401tx3968tx4535tx5102t x5669tx6236tx6803qlqnaturalpardirnatural
f0fs36
cf2
Lirum
b larum b0
L lsquof6ffelstiel
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
RTF (Rich Text Format) Entwickelt von Microsoft aber frei verfuumlgbar Basierend auf Standard-Codetabellen (ASCII
UNICODE) Lesbar von allen gaumlngigen Texteditoren wobei
uU Teile der Layout-Information ignoriert werden
RTF Spezifikationen Syntax ltheadergt ltdocumentgt Der header beinhalten Kontrollwoumlrter die mit
Backslash anfangen und mit Leerzeichen getrennt werden
Im header wird zusaumltzliche Layoutinformation repraumlsentiert zB Schriftfarbe oder Schrifttyp
RTF kann mit verschiedenen Versionen von ASCII oder UNICODE Zeichen umgehen (Meta-Information im header)
Bei RTF wird implizit angenommen dass die entsprechenden Codetabellen verfuumlgbar sind und dass die Bloumlcke innerhalb der Bitsequenz in der richtigen Reihenfolge vorliegen
Zusammenfassung RTF kann mehr als TXT und weniger als DOC
das ist seine bdquodigitale Nischeldquo RTF ermoumlglicht die Repraumlsentation von
allgemeinen Layoutinformation durch standardisierte Kontrollwoumlrter im header
Das Layout fuumlr Textteile geschieht durch Auszeichnung des Dokuments mit Kontrollwoumlrtern im Text (wie HTML)
Bildinformation in einem etwas
speziellen Format
Die Brille implementiert die
Decodierung
Das Format gibt an welche Brille
man braucht
Eine Analogie zur Zusammenfassung
Konzepte Beispiele Format
Header Endung Zeichen explizite amp implizite
Bestandteile Universalitaumlt
Eigene Formate fuumlr Spiele
rtf
Datei Raetsel
ltsvg version=11ldquo
xmlns=httpwwww3org2000svg
xmlnsxlink=httpwwww3org1999xlink
xmlnsa=httpnsadobecomAdobeSVGViewerExtensions30ldquo
x=0px y=0px width=400px height=400px viewBox=0 0 400
400ldquo
enable-background=new 0 0 400 400 xmlspace=preservegt
ltdefsgt ltdefsgt
ltrect fill=FF0000 stroke=none x=0 y=0 width=400
height=400gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=350250
50250 50150 350150gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=250350
150350 15050 25050gt
ltsvggt
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
Grafikformate
und verlustbehaftete Komprimierung
Wie viel Information ist noumltig
Anfangs- und Endpunkt definieren die Linie eindeutig
Mittelpunkt und Radius definieren den Kreis eindeutig
Die Eckpunkte definieren das Polygon eindeutig
Vektorgrafik
Mit allgemeinen Kurven (zB Bezier Kurven) und noch mehr Parametern kann man jede beliebige Form berechen
kann zu extrem geringen Dateigroumlssen fuumlhren
Vektorgrafiken sind beliebig skalierbar
26 Kb
26 Kb
Reine Vektorgrafikformate Sind nicht weit verbreitet meist proprietaumlr in
Verbindung mit einem Editor ndash zB Adobe Illustrator (ai)
Ausnahme SVG (scalable vector graphics) Benutzt werden Vektorgrafiken aber oft in
Kombination zB einzelne Ebenen in Photoshop Vektor-Fonts Zeichnungen in Word oder Powerpoint in Druckformaten (PDF EPS)
Interessant pptx hacken
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Digitale Repraumlsentation von Schach
Was ist wichtig nur die Information die einen
Spielstande eindeutig definiert
Was ist moumlglich alle Spielstaumlnde muumlssen repraumlsentiert
werden koumlnnen
Welche Informationen codiert man (explizit) als Zeichen welche (implizit) in der Anordnung
es geht nicht um maximale Effizienz man muss aber trotzdem keinen Speicherplatz verschwenden Vorschlaumlge
Wie viele Bits brauchen Sie
oder ein universeller digitale Koffer fuumlr Schach
Ein Schach Format (sch) 257 BIT
Das erste Bit gibt an wer am Zug ist (1=schwarz 0=weiss)
Die folgenden 256 Bit repraumlsentieren die Belegung der 64 Felder mit jeweils 4 Bit pro Feld (nummeriert zeilenweise von links nach rechts dann spaltenweise von oben nach unten)
Das erste Bit pro Feld steht fuumlr die Farbe der Figur
Die letzten 3 Bit pro Feld stehen fuumlr die Figur die hier steht
1 = schwarz
000 = leer001 = Bauer010 = Turm011 = Springer
0 = weiss
100 = Pferd101 = Dame110 = Koumlnig111 = steht fuumlr nichts
Ein Format fuumlr Schieber-Jass Das Spiel 4 Spieler haben zu Beginn je 9
Karten spielen sie reihum aus und nach jeder Runde wandern 4 Karten auf den einen oder anderen Stapel von gespielten Karten
Aufgabe erfinden Sie ein Format mit dem jeder moumlgliche Zustand des Spiels binaumlr repraumlsentiert werden kann Formulieren Sie die von Ihnen erfundene
Codierung so dass ein anderer Schuumller eine entsprechende Bitsequenz in den Spielzustand zuruumlckuumlbersetzen koumlnnte
Geben Sie an wie viele Bits fuumlr die Speicherung eines Spielzustands benoumltigt werden
Und woher weiss der Computer welches Format eine Datei hat
Die meisten Datei-Formate haben einen header in dem 1 sie sich vorstellen und 2 zusaumltzliche Angaben zur
Formatierung machen zB
bull VersionVariation des Formats
bull Parameterbull allgemeine
Zusatzinformationen
1 Endung2 Header Diese
Informationen sagen dem Computer welche Brille er anziehen muss
Beispielrtf rtf1ansiansicpg1252cocoartf1038cocoasubrtf250
fonttblf0fnilfcharset0 GoudyOldStyleT-Regular
colortblred255green255blue255red6green10blue58
paperw11900paperh16840margl1440margr1440vieww9000viewh8 400viewkind0
pardtx566tx1133tx1700tx2267tx2834tx3401tx3968tx4535tx5102t x5669tx6236tx6803qlqnaturalpardirnatural
f0fs36
cf2
Lirum
b larum b0
L lsquof6ffelstiel
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
RTF (Rich Text Format) Entwickelt von Microsoft aber frei verfuumlgbar Basierend auf Standard-Codetabellen (ASCII
UNICODE) Lesbar von allen gaumlngigen Texteditoren wobei
uU Teile der Layout-Information ignoriert werden
RTF Spezifikationen Syntax ltheadergt ltdocumentgt Der header beinhalten Kontrollwoumlrter die mit
Backslash anfangen und mit Leerzeichen getrennt werden
Im header wird zusaumltzliche Layoutinformation repraumlsentiert zB Schriftfarbe oder Schrifttyp
RTF kann mit verschiedenen Versionen von ASCII oder UNICODE Zeichen umgehen (Meta-Information im header)
Bei RTF wird implizit angenommen dass die entsprechenden Codetabellen verfuumlgbar sind und dass die Bloumlcke innerhalb der Bitsequenz in der richtigen Reihenfolge vorliegen
Zusammenfassung RTF kann mehr als TXT und weniger als DOC
das ist seine bdquodigitale Nischeldquo RTF ermoumlglicht die Repraumlsentation von
allgemeinen Layoutinformation durch standardisierte Kontrollwoumlrter im header
Das Layout fuumlr Textteile geschieht durch Auszeichnung des Dokuments mit Kontrollwoumlrtern im Text (wie HTML)
Bildinformation in einem etwas
speziellen Format
Die Brille implementiert die
Decodierung
Das Format gibt an welche Brille
man braucht
Eine Analogie zur Zusammenfassung
Konzepte Beispiele Format
Header Endung Zeichen explizite amp implizite
Bestandteile Universalitaumlt
Eigene Formate fuumlr Spiele
rtf
Datei Raetsel
ltsvg version=11ldquo
xmlns=httpwwww3org2000svg
xmlnsxlink=httpwwww3org1999xlink
xmlnsa=httpnsadobecomAdobeSVGViewerExtensions30ldquo
x=0px y=0px width=400px height=400px viewBox=0 0 400
400ldquo
enable-background=new 0 0 400 400 xmlspace=preservegt
ltdefsgt ltdefsgt
ltrect fill=FF0000 stroke=none x=0 y=0 width=400
height=400gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=350250
50250 50150 350150gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=250350
150350 15050 25050gt
ltsvggt
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
Grafikformate
und verlustbehaftete Komprimierung
Wie viel Information ist noumltig
Anfangs- und Endpunkt definieren die Linie eindeutig
Mittelpunkt und Radius definieren den Kreis eindeutig
Die Eckpunkte definieren das Polygon eindeutig
Vektorgrafik
Mit allgemeinen Kurven (zB Bezier Kurven) und noch mehr Parametern kann man jede beliebige Form berechen
kann zu extrem geringen Dateigroumlssen fuumlhren
Vektorgrafiken sind beliebig skalierbar
26 Kb
26 Kb
Reine Vektorgrafikformate Sind nicht weit verbreitet meist proprietaumlr in
Verbindung mit einem Editor ndash zB Adobe Illustrator (ai)
Ausnahme SVG (scalable vector graphics) Benutzt werden Vektorgrafiken aber oft in
Kombination zB einzelne Ebenen in Photoshop Vektor-Fonts Zeichnungen in Word oder Powerpoint in Druckformaten (PDF EPS)
Interessant pptx hacken
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Ein Schach Format (sch) 257 BIT
Das erste Bit gibt an wer am Zug ist (1=schwarz 0=weiss)
Die folgenden 256 Bit repraumlsentieren die Belegung der 64 Felder mit jeweils 4 Bit pro Feld (nummeriert zeilenweise von links nach rechts dann spaltenweise von oben nach unten)
Das erste Bit pro Feld steht fuumlr die Farbe der Figur
Die letzten 3 Bit pro Feld stehen fuumlr die Figur die hier steht
1 = schwarz
000 = leer001 = Bauer010 = Turm011 = Springer
0 = weiss
100 = Pferd101 = Dame110 = Koumlnig111 = steht fuumlr nichts
Ein Format fuumlr Schieber-Jass Das Spiel 4 Spieler haben zu Beginn je 9
Karten spielen sie reihum aus und nach jeder Runde wandern 4 Karten auf den einen oder anderen Stapel von gespielten Karten
Aufgabe erfinden Sie ein Format mit dem jeder moumlgliche Zustand des Spiels binaumlr repraumlsentiert werden kann Formulieren Sie die von Ihnen erfundene
Codierung so dass ein anderer Schuumller eine entsprechende Bitsequenz in den Spielzustand zuruumlckuumlbersetzen koumlnnte
Geben Sie an wie viele Bits fuumlr die Speicherung eines Spielzustands benoumltigt werden
Und woher weiss der Computer welches Format eine Datei hat
Die meisten Datei-Formate haben einen header in dem 1 sie sich vorstellen und 2 zusaumltzliche Angaben zur
Formatierung machen zB
bull VersionVariation des Formats
bull Parameterbull allgemeine
Zusatzinformationen
1 Endung2 Header Diese
Informationen sagen dem Computer welche Brille er anziehen muss
Beispielrtf rtf1ansiansicpg1252cocoartf1038cocoasubrtf250
fonttblf0fnilfcharset0 GoudyOldStyleT-Regular
colortblred255green255blue255red6green10blue58
paperw11900paperh16840margl1440margr1440vieww9000viewh8 400viewkind0
pardtx566tx1133tx1700tx2267tx2834tx3401tx3968tx4535tx5102t x5669tx6236tx6803qlqnaturalpardirnatural
f0fs36
cf2
Lirum
b larum b0
L lsquof6ffelstiel
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
RTF (Rich Text Format) Entwickelt von Microsoft aber frei verfuumlgbar Basierend auf Standard-Codetabellen (ASCII
UNICODE) Lesbar von allen gaumlngigen Texteditoren wobei
uU Teile der Layout-Information ignoriert werden
RTF Spezifikationen Syntax ltheadergt ltdocumentgt Der header beinhalten Kontrollwoumlrter die mit
Backslash anfangen und mit Leerzeichen getrennt werden
Im header wird zusaumltzliche Layoutinformation repraumlsentiert zB Schriftfarbe oder Schrifttyp
RTF kann mit verschiedenen Versionen von ASCII oder UNICODE Zeichen umgehen (Meta-Information im header)
Bei RTF wird implizit angenommen dass die entsprechenden Codetabellen verfuumlgbar sind und dass die Bloumlcke innerhalb der Bitsequenz in der richtigen Reihenfolge vorliegen
Zusammenfassung RTF kann mehr als TXT und weniger als DOC
das ist seine bdquodigitale Nischeldquo RTF ermoumlglicht die Repraumlsentation von
allgemeinen Layoutinformation durch standardisierte Kontrollwoumlrter im header
Das Layout fuumlr Textteile geschieht durch Auszeichnung des Dokuments mit Kontrollwoumlrtern im Text (wie HTML)
Bildinformation in einem etwas
speziellen Format
Die Brille implementiert die
Decodierung
Das Format gibt an welche Brille
man braucht
Eine Analogie zur Zusammenfassung
Konzepte Beispiele Format
Header Endung Zeichen explizite amp implizite
Bestandteile Universalitaumlt
Eigene Formate fuumlr Spiele
rtf
Datei Raetsel
ltsvg version=11ldquo
xmlns=httpwwww3org2000svg
xmlnsxlink=httpwwww3org1999xlink
xmlnsa=httpnsadobecomAdobeSVGViewerExtensions30ldquo
x=0px y=0px width=400px height=400px viewBox=0 0 400
400ldquo
enable-background=new 0 0 400 400 xmlspace=preservegt
ltdefsgt ltdefsgt
ltrect fill=FF0000 stroke=none x=0 y=0 width=400
height=400gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=350250
50250 50150 350150gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=250350
150350 15050 25050gt
ltsvggt
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
Grafikformate
und verlustbehaftete Komprimierung
Wie viel Information ist noumltig
Anfangs- und Endpunkt definieren die Linie eindeutig
Mittelpunkt und Radius definieren den Kreis eindeutig
Die Eckpunkte definieren das Polygon eindeutig
Vektorgrafik
Mit allgemeinen Kurven (zB Bezier Kurven) und noch mehr Parametern kann man jede beliebige Form berechen
kann zu extrem geringen Dateigroumlssen fuumlhren
Vektorgrafiken sind beliebig skalierbar
26 Kb
26 Kb
Reine Vektorgrafikformate Sind nicht weit verbreitet meist proprietaumlr in
Verbindung mit einem Editor ndash zB Adobe Illustrator (ai)
Ausnahme SVG (scalable vector graphics) Benutzt werden Vektorgrafiken aber oft in
Kombination zB einzelne Ebenen in Photoshop Vektor-Fonts Zeichnungen in Word oder Powerpoint in Druckformaten (PDF EPS)
Interessant pptx hacken
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Ein Format fuumlr Schieber-Jass Das Spiel 4 Spieler haben zu Beginn je 9
Karten spielen sie reihum aus und nach jeder Runde wandern 4 Karten auf den einen oder anderen Stapel von gespielten Karten
Aufgabe erfinden Sie ein Format mit dem jeder moumlgliche Zustand des Spiels binaumlr repraumlsentiert werden kann Formulieren Sie die von Ihnen erfundene
Codierung so dass ein anderer Schuumller eine entsprechende Bitsequenz in den Spielzustand zuruumlckuumlbersetzen koumlnnte
Geben Sie an wie viele Bits fuumlr die Speicherung eines Spielzustands benoumltigt werden
Und woher weiss der Computer welches Format eine Datei hat
Die meisten Datei-Formate haben einen header in dem 1 sie sich vorstellen und 2 zusaumltzliche Angaben zur
Formatierung machen zB
bull VersionVariation des Formats
bull Parameterbull allgemeine
Zusatzinformationen
1 Endung2 Header Diese
Informationen sagen dem Computer welche Brille er anziehen muss
Beispielrtf rtf1ansiansicpg1252cocoartf1038cocoasubrtf250
fonttblf0fnilfcharset0 GoudyOldStyleT-Regular
colortblred255green255blue255red6green10blue58
paperw11900paperh16840margl1440margr1440vieww9000viewh8 400viewkind0
pardtx566tx1133tx1700tx2267tx2834tx3401tx3968tx4535tx5102t x5669tx6236tx6803qlqnaturalpardirnatural
f0fs36
cf2
Lirum
b larum b0
L lsquof6ffelstiel
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
RTF (Rich Text Format) Entwickelt von Microsoft aber frei verfuumlgbar Basierend auf Standard-Codetabellen (ASCII
UNICODE) Lesbar von allen gaumlngigen Texteditoren wobei
uU Teile der Layout-Information ignoriert werden
RTF Spezifikationen Syntax ltheadergt ltdocumentgt Der header beinhalten Kontrollwoumlrter die mit
Backslash anfangen und mit Leerzeichen getrennt werden
Im header wird zusaumltzliche Layoutinformation repraumlsentiert zB Schriftfarbe oder Schrifttyp
RTF kann mit verschiedenen Versionen von ASCII oder UNICODE Zeichen umgehen (Meta-Information im header)
Bei RTF wird implizit angenommen dass die entsprechenden Codetabellen verfuumlgbar sind und dass die Bloumlcke innerhalb der Bitsequenz in der richtigen Reihenfolge vorliegen
Zusammenfassung RTF kann mehr als TXT und weniger als DOC
das ist seine bdquodigitale Nischeldquo RTF ermoumlglicht die Repraumlsentation von
allgemeinen Layoutinformation durch standardisierte Kontrollwoumlrter im header
Das Layout fuumlr Textteile geschieht durch Auszeichnung des Dokuments mit Kontrollwoumlrtern im Text (wie HTML)
Bildinformation in einem etwas
speziellen Format
Die Brille implementiert die
Decodierung
Das Format gibt an welche Brille
man braucht
Eine Analogie zur Zusammenfassung
Konzepte Beispiele Format
Header Endung Zeichen explizite amp implizite
Bestandteile Universalitaumlt
Eigene Formate fuumlr Spiele
rtf
Datei Raetsel
ltsvg version=11ldquo
xmlns=httpwwww3org2000svg
xmlnsxlink=httpwwww3org1999xlink
xmlnsa=httpnsadobecomAdobeSVGViewerExtensions30ldquo
x=0px y=0px width=400px height=400px viewBox=0 0 400
400ldquo
enable-background=new 0 0 400 400 xmlspace=preservegt
ltdefsgt ltdefsgt
ltrect fill=FF0000 stroke=none x=0 y=0 width=400
height=400gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=350250
50250 50150 350150gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=250350
150350 15050 25050gt
ltsvggt
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
Grafikformate
und verlustbehaftete Komprimierung
Wie viel Information ist noumltig
Anfangs- und Endpunkt definieren die Linie eindeutig
Mittelpunkt und Radius definieren den Kreis eindeutig
Die Eckpunkte definieren das Polygon eindeutig
Vektorgrafik
Mit allgemeinen Kurven (zB Bezier Kurven) und noch mehr Parametern kann man jede beliebige Form berechen
kann zu extrem geringen Dateigroumlssen fuumlhren
Vektorgrafiken sind beliebig skalierbar
26 Kb
26 Kb
Reine Vektorgrafikformate Sind nicht weit verbreitet meist proprietaumlr in
Verbindung mit einem Editor ndash zB Adobe Illustrator (ai)
Ausnahme SVG (scalable vector graphics) Benutzt werden Vektorgrafiken aber oft in
Kombination zB einzelne Ebenen in Photoshop Vektor-Fonts Zeichnungen in Word oder Powerpoint in Druckformaten (PDF EPS)
Interessant pptx hacken
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Und woher weiss der Computer welches Format eine Datei hat
Die meisten Datei-Formate haben einen header in dem 1 sie sich vorstellen und 2 zusaumltzliche Angaben zur
Formatierung machen zB
bull VersionVariation des Formats
bull Parameterbull allgemeine
Zusatzinformationen
1 Endung2 Header Diese
Informationen sagen dem Computer welche Brille er anziehen muss
Beispielrtf rtf1ansiansicpg1252cocoartf1038cocoasubrtf250
fonttblf0fnilfcharset0 GoudyOldStyleT-Regular
colortblred255green255blue255red6green10blue58
paperw11900paperh16840margl1440margr1440vieww9000viewh8 400viewkind0
pardtx566tx1133tx1700tx2267tx2834tx3401tx3968tx4535tx5102t x5669tx6236tx6803qlqnaturalpardirnatural
f0fs36
cf2
Lirum
b larum b0
L lsquof6ffelstiel
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
RTF (Rich Text Format) Entwickelt von Microsoft aber frei verfuumlgbar Basierend auf Standard-Codetabellen (ASCII
UNICODE) Lesbar von allen gaumlngigen Texteditoren wobei
uU Teile der Layout-Information ignoriert werden
RTF Spezifikationen Syntax ltheadergt ltdocumentgt Der header beinhalten Kontrollwoumlrter die mit
Backslash anfangen und mit Leerzeichen getrennt werden
Im header wird zusaumltzliche Layoutinformation repraumlsentiert zB Schriftfarbe oder Schrifttyp
RTF kann mit verschiedenen Versionen von ASCII oder UNICODE Zeichen umgehen (Meta-Information im header)
Bei RTF wird implizit angenommen dass die entsprechenden Codetabellen verfuumlgbar sind und dass die Bloumlcke innerhalb der Bitsequenz in der richtigen Reihenfolge vorliegen
Zusammenfassung RTF kann mehr als TXT und weniger als DOC
das ist seine bdquodigitale Nischeldquo RTF ermoumlglicht die Repraumlsentation von
allgemeinen Layoutinformation durch standardisierte Kontrollwoumlrter im header
Das Layout fuumlr Textteile geschieht durch Auszeichnung des Dokuments mit Kontrollwoumlrtern im Text (wie HTML)
Bildinformation in einem etwas
speziellen Format
Die Brille implementiert die
Decodierung
Das Format gibt an welche Brille
man braucht
Eine Analogie zur Zusammenfassung
Konzepte Beispiele Format
Header Endung Zeichen explizite amp implizite
Bestandteile Universalitaumlt
Eigene Formate fuumlr Spiele
rtf
Datei Raetsel
ltsvg version=11ldquo
xmlns=httpwwww3org2000svg
xmlnsxlink=httpwwww3org1999xlink
xmlnsa=httpnsadobecomAdobeSVGViewerExtensions30ldquo
x=0px y=0px width=400px height=400px viewBox=0 0 400
400ldquo
enable-background=new 0 0 400 400 xmlspace=preservegt
ltdefsgt ltdefsgt
ltrect fill=FF0000 stroke=none x=0 y=0 width=400
height=400gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=350250
50250 50150 350150gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=250350
150350 15050 25050gt
ltsvggt
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
Grafikformate
und verlustbehaftete Komprimierung
Wie viel Information ist noumltig
Anfangs- und Endpunkt definieren die Linie eindeutig
Mittelpunkt und Radius definieren den Kreis eindeutig
Die Eckpunkte definieren das Polygon eindeutig
Vektorgrafik
Mit allgemeinen Kurven (zB Bezier Kurven) und noch mehr Parametern kann man jede beliebige Form berechen
kann zu extrem geringen Dateigroumlssen fuumlhren
Vektorgrafiken sind beliebig skalierbar
26 Kb
26 Kb
Reine Vektorgrafikformate Sind nicht weit verbreitet meist proprietaumlr in
Verbindung mit einem Editor ndash zB Adobe Illustrator (ai)
Ausnahme SVG (scalable vector graphics) Benutzt werden Vektorgrafiken aber oft in
Kombination zB einzelne Ebenen in Photoshop Vektor-Fonts Zeichnungen in Word oder Powerpoint in Druckformaten (PDF EPS)
Interessant pptx hacken
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Beispielrtf rtf1ansiansicpg1252cocoartf1038cocoasubrtf250
fonttblf0fnilfcharset0 GoudyOldStyleT-Regular
colortblred255green255blue255red6green10blue58
paperw11900paperh16840margl1440margr1440vieww9000viewh8 400viewkind0
pardtx566tx1133tx1700tx2267tx2834tx3401tx3968tx4535tx5102t x5669tx6236tx6803qlqnaturalpardirnatural
f0fs36
cf2
Lirum
b larum b0
L lsquof6ffelstiel
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
RTF (Rich Text Format) Entwickelt von Microsoft aber frei verfuumlgbar Basierend auf Standard-Codetabellen (ASCII
UNICODE) Lesbar von allen gaumlngigen Texteditoren wobei
uU Teile der Layout-Information ignoriert werden
RTF Spezifikationen Syntax ltheadergt ltdocumentgt Der header beinhalten Kontrollwoumlrter die mit
Backslash anfangen und mit Leerzeichen getrennt werden
Im header wird zusaumltzliche Layoutinformation repraumlsentiert zB Schriftfarbe oder Schrifttyp
RTF kann mit verschiedenen Versionen von ASCII oder UNICODE Zeichen umgehen (Meta-Information im header)
Bei RTF wird implizit angenommen dass die entsprechenden Codetabellen verfuumlgbar sind und dass die Bloumlcke innerhalb der Bitsequenz in der richtigen Reihenfolge vorliegen
Zusammenfassung RTF kann mehr als TXT und weniger als DOC
das ist seine bdquodigitale Nischeldquo RTF ermoumlglicht die Repraumlsentation von
allgemeinen Layoutinformation durch standardisierte Kontrollwoumlrter im header
Das Layout fuumlr Textteile geschieht durch Auszeichnung des Dokuments mit Kontrollwoumlrtern im Text (wie HTML)
Bildinformation in einem etwas
speziellen Format
Die Brille implementiert die
Decodierung
Das Format gibt an welche Brille
man braucht
Eine Analogie zur Zusammenfassung
Konzepte Beispiele Format
Header Endung Zeichen explizite amp implizite
Bestandteile Universalitaumlt
Eigene Formate fuumlr Spiele
rtf
Datei Raetsel
ltsvg version=11ldquo
xmlns=httpwwww3org2000svg
xmlnsxlink=httpwwww3org1999xlink
xmlnsa=httpnsadobecomAdobeSVGViewerExtensions30ldquo
x=0px y=0px width=400px height=400px viewBox=0 0 400
400ldquo
enable-background=new 0 0 400 400 xmlspace=preservegt
ltdefsgt ltdefsgt
ltrect fill=FF0000 stroke=none x=0 y=0 width=400
height=400gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=350250
50250 50150 350150gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=250350
150350 15050 25050gt
ltsvggt
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
Grafikformate
und verlustbehaftete Komprimierung
Wie viel Information ist noumltig
Anfangs- und Endpunkt definieren die Linie eindeutig
Mittelpunkt und Radius definieren den Kreis eindeutig
Die Eckpunkte definieren das Polygon eindeutig
Vektorgrafik
Mit allgemeinen Kurven (zB Bezier Kurven) und noch mehr Parametern kann man jede beliebige Form berechen
kann zu extrem geringen Dateigroumlssen fuumlhren
Vektorgrafiken sind beliebig skalierbar
26 Kb
26 Kb
Reine Vektorgrafikformate Sind nicht weit verbreitet meist proprietaumlr in
Verbindung mit einem Editor ndash zB Adobe Illustrator (ai)
Ausnahme SVG (scalable vector graphics) Benutzt werden Vektorgrafiken aber oft in
Kombination zB einzelne Ebenen in Photoshop Vektor-Fonts Zeichnungen in Word oder Powerpoint in Druckformaten (PDF EPS)
Interessant pptx hacken
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
RTF (Rich Text Format) Entwickelt von Microsoft aber frei verfuumlgbar Basierend auf Standard-Codetabellen (ASCII
UNICODE) Lesbar von allen gaumlngigen Texteditoren wobei
uU Teile der Layout-Information ignoriert werden
RTF Spezifikationen Syntax ltheadergt ltdocumentgt Der header beinhalten Kontrollwoumlrter die mit
Backslash anfangen und mit Leerzeichen getrennt werden
Im header wird zusaumltzliche Layoutinformation repraumlsentiert zB Schriftfarbe oder Schrifttyp
RTF kann mit verschiedenen Versionen von ASCII oder UNICODE Zeichen umgehen (Meta-Information im header)
Bei RTF wird implizit angenommen dass die entsprechenden Codetabellen verfuumlgbar sind und dass die Bloumlcke innerhalb der Bitsequenz in der richtigen Reihenfolge vorliegen
Zusammenfassung RTF kann mehr als TXT und weniger als DOC
das ist seine bdquodigitale Nischeldquo RTF ermoumlglicht die Repraumlsentation von
allgemeinen Layoutinformation durch standardisierte Kontrollwoumlrter im header
Das Layout fuumlr Textteile geschieht durch Auszeichnung des Dokuments mit Kontrollwoumlrtern im Text (wie HTML)
Bildinformation in einem etwas
speziellen Format
Die Brille implementiert die
Decodierung
Das Format gibt an welche Brille
man braucht
Eine Analogie zur Zusammenfassung
Konzepte Beispiele Format
Header Endung Zeichen explizite amp implizite
Bestandteile Universalitaumlt
Eigene Formate fuumlr Spiele
rtf
Datei Raetsel
ltsvg version=11ldquo
xmlns=httpwwww3org2000svg
xmlnsxlink=httpwwww3org1999xlink
xmlnsa=httpnsadobecomAdobeSVGViewerExtensions30ldquo
x=0px y=0px width=400px height=400px viewBox=0 0 400
400ldquo
enable-background=new 0 0 400 400 xmlspace=preservegt
ltdefsgt ltdefsgt
ltrect fill=FF0000 stroke=none x=0 y=0 width=400
height=400gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=350250
50250 50150 350150gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=250350
150350 15050 25050gt
ltsvggt
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
Grafikformate
und verlustbehaftete Komprimierung
Wie viel Information ist noumltig
Anfangs- und Endpunkt definieren die Linie eindeutig
Mittelpunkt und Radius definieren den Kreis eindeutig
Die Eckpunkte definieren das Polygon eindeutig
Vektorgrafik
Mit allgemeinen Kurven (zB Bezier Kurven) und noch mehr Parametern kann man jede beliebige Form berechen
kann zu extrem geringen Dateigroumlssen fuumlhren
Vektorgrafiken sind beliebig skalierbar
26 Kb
26 Kb
Reine Vektorgrafikformate Sind nicht weit verbreitet meist proprietaumlr in
Verbindung mit einem Editor ndash zB Adobe Illustrator (ai)
Ausnahme SVG (scalable vector graphics) Benutzt werden Vektorgrafiken aber oft in
Kombination zB einzelne Ebenen in Photoshop Vektor-Fonts Zeichnungen in Word oder Powerpoint in Druckformaten (PDF EPS)
Interessant pptx hacken
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
RTF Spezifikationen Syntax ltheadergt ltdocumentgt Der header beinhalten Kontrollwoumlrter die mit
Backslash anfangen und mit Leerzeichen getrennt werden
Im header wird zusaumltzliche Layoutinformation repraumlsentiert zB Schriftfarbe oder Schrifttyp
RTF kann mit verschiedenen Versionen von ASCII oder UNICODE Zeichen umgehen (Meta-Information im header)
Bei RTF wird implizit angenommen dass die entsprechenden Codetabellen verfuumlgbar sind und dass die Bloumlcke innerhalb der Bitsequenz in der richtigen Reihenfolge vorliegen
Zusammenfassung RTF kann mehr als TXT und weniger als DOC
das ist seine bdquodigitale Nischeldquo RTF ermoumlglicht die Repraumlsentation von
allgemeinen Layoutinformation durch standardisierte Kontrollwoumlrter im header
Das Layout fuumlr Textteile geschieht durch Auszeichnung des Dokuments mit Kontrollwoumlrtern im Text (wie HTML)
Bildinformation in einem etwas
speziellen Format
Die Brille implementiert die
Decodierung
Das Format gibt an welche Brille
man braucht
Eine Analogie zur Zusammenfassung
Konzepte Beispiele Format
Header Endung Zeichen explizite amp implizite
Bestandteile Universalitaumlt
Eigene Formate fuumlr Spiele
rtf
Datei Raetsel
ltsvg version=11ldquo
xmlns=httpwwww3org2000svg
xmlnsxlink=httpwwww3org1999xlink
xmlnsa=httpnsadobecomAdobeSVGViewerExtensions30ldquo
x=0px y=0px width=400px height=400px viewBox=0 0 400
400ldquo
enable-background=new 0 0 400 400 xmlspace=preservegt
ltdefsgt ltdefsgt
ltrect fill=FF0000 stroke=none x=0 y=0 width=400
height=400gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=350250
50250 50150 350150gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=250350
150350 15050 25050gt
ltsvggt
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
Grafikformate
und verlustbehaftete Komprimierung
Wie viel Information ist noumltig
Anfangs- und Endpunkt definieren die Linie eindeutig
Mittelpunkt und Radius definieren den Kreis eindeutig
Die Eckpunkte definieren das Polygon eindeutig
Vektorgrafik
Mit allgemeinen Kurven (zB Bezier Kurven) und noch mehr Parametern kann man jede beliebige Form berechen
kann zu extrem geringen Dateigroumlssen fuumlhren
Vektorgrafiken sind beliebig skalierbar
26 Kb
26 Kb
Reine Vektorgrafikformate Sind nicht weit verbreitet meist proprietaumlr in
Verbindung mit einem Editor ndash zB Adobe Illustrator (ai)
Ausnahme SVG (scalable vector graphics) Benutzt werden Vektorgrafiken aber oft in
Kombination zB einzelne Ebenen in Photoshop Vektor-Fonts Zeichnungen in Word oder Powerpoint in Druckformaten (PDF EPS)
Interessant pptx hacken
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Zusammenfassung RTF kann mehr als TXT und weniger als DOC
das ist seine bdquodigitale Nischeldquo RTF ermoumlglicht die Repraumlsentation von
allgemeinen Layoutinformation durch standardisierte Kontrollwoumlrter im header
Das Layout fuumlr Textteile geschieht durch Auszeichnung des Dokuments mit Kontrollwoumlrtern im Text (wie HTML)
Bildinformation in einem etwas
speziellen Format
Die Brille implementiert die
Decodierung
Das Format gibt an welche Brille
man braucht
Eine Analogie zur Zusammenfassung
Konzepte Beispiele Format
Header Endung Zeichen explizite amp implizite
Bestandteile Universalitaumlt
Eigene Formate fuumlr Spiele
rtf
Datei Raetsel
ltsvg version=11ldquo
xmlns=httpwwww3org2000svg
xmlnsxlink=httpwwww3org1999xlink
xmlnsa=httpnsadobecomAdobeSVGViewerExtensions30ldquo
x=0px y=0px width=400px height=400px viewBox=0 0 400
400ldquo
enable-background=new 0 0 400 400 xmlspace=preservegt
ltdefsgt ltdefsgt
ltrect fill=FF0000 stroke=none x=0 y=0 width=400
height=400gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=350250
50250 50150 350150gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=250350
150350 15050 25050gt
ltsvggt
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
Grafikformate
und verlustbehaftete Komprimierung
Wie viel Information ist noumltig
Anfangs- und Endpunkt definieren die Linie eindeutig
Mittelpunkt und Radius definieren den Kreis eindeutig
Die Eckpunkte definieren das Polygon eindeutig
Vektorgrafik
Mit allgemeinen Kurven (zB Bezier Kurven) und noch mehr Parametern kann man jede beliebige Form berechen
kann zu extrem geringen Dateigroumlssen fuumlhren
Vektorgrafiken sind beliebig skalierbar
26 Kb
26 Kb
Reine Vektorgrafikformate Sind nicht weit verbreitet meist proprietaumlr in
Verbindung mit einem Editor ndash zB Adobe Illustrator (ai)
Ausnahme SVG (scalable vector graphics) Benutzt werden Vektorgrafiken aber oft in
Kombination zB einzelne Ebenen in Photoshop Vektor-Fonts Zeichnungen in Word oder Powerpoint in Druckformaten (PDF EPS)
Interessant pptx hacken
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Bildinformation in einem etwas
speziellen Format
Die Brille implementiert die
Decodierung
Das Format gibt an welche Brille
man braucht
Eine Analogie zur Zusammenfassung
Konzepte Beispiele Format
Header Endung Zeichen explizite amp implizite
Bestandteile Universalitaumlt
Eigene Formate fuumlr Spiele
rtf
Datei Raetsel
ltsvg version=11ldquo
xmlns=httpwwww3org2000svg
xmlnsxlink=httpwwww3org1999xlink
xmlnsa=httpnsadobecomAdobeSVGViewerExtensions30ldquo
x=0px y=0px width=400px height=400px viewBox=0 0 400
400ldquo
enable-background=new 0 0 400 400 xmlspace=preservegt
ltdefsgt ltdefsgt
ltrect fill=FF0000 stroke=none x=0 y=0 width=400
height=400gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=350250
50250 50150 350150gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=250350
150350 15050 25050gt
ltsvggt
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
Grafikformate
und verlustbehaftete Komprimierung
Wie viel Information ist noumltig
Anfangs- und Endpunkt definieren die Linie eindeutig
Mittelpunkt und Radius definieren den Kreis eindeutig
Die Eckpunkte definieren das Polygon eindeutig
Vektorgrafik
Mit allgemeinen Kurven (zB Bezier Kurven) und noch mehr Parametern kann man jede beliebige Form berechen
kann zu extrem geringen Dateigroumlssen fuumlhren
Vektorgrafiken sind beliebig skalierbar
26 Kb
26 Kb
Reine Vektorgrafikformate Sind nicht weit verbreitet meist proprietaumlr in
Verbindung mit einem Editor ndash zB Adobe Illustrator (ai)
Ausnahme SVG (scalable vector graphics) Benutzt werden Vektorgrafiken aber oft in
Kombination zB einzelne Ebenen in Photoshop Vektor-Fonts Zeichnungen in Word oder Powerpoint in Druckformaten (PDF EPS)
Interessant pptx hacken
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Konzepte Beispiele Format
Header Endung Zeichen explizite amp implizite
Bestandteile Universalitaumlt
Eigene Formate fuumlr Spiele
rtf
Datei Raetsel
ltsvg version=11ldquo
xmlns=httpwwww3org2000svg
xmlnsxlink=httpwwww3org1999xlink
xmlnsa=httpnsadobecomAdobeSVGViewerExtensions30ldquo
x=0px y=0px width=400px height=400px viewBox=0 0 400
400ldquo
enable-background=new 0 0 400 400 xmlspace=preservegt
ltdefsgt ltdefsgt
ltrect fill=FF0000 stroke=none x=0 y=0 width=400
height=400gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=350250
50250 50150 350150gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=250350
150350 15050 25050gt
ltsvggt
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
Grafikformate
und verlustbehaftete Komprimierung
Wie viel Information ist noumltig
Anfangs- und Endpunkt definieren die Linie eindeutig
Mittelpunkt und Radius definieren den Kreis eindeutig
Die Eckpunkte definieren das Polygon eindeutig
Vektorgrafik
Mit allgemeinen Kurven (zB Bezier Kurven) und noch mehr Parametern kann man jede beliebige Form berechen
kann zu extrem geringen Dateigroumlssen fuumlhren
Vektorgrafiken sind beliebig skalierbar
26 Kb
26 Kb
Reine Vektorgrafikformate Sind nicht weit verbreitet meist proprietaumlr in
Verbindung mit einem Editor ndash zB Adobe Illustrator (ai)
Ausnahme SVG (scalable vector graphics) Benutzt werden Vektorgrafiken aber oft in
Kombination zB einzelne Ebenen in Photoshop Vektor-Fonts Zeichnungen in Word oder Powerpoint in Druckformaten (PDF EPS)
Interessant pptx hacken
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Datei Raetsel
ltsvg version=11ldquo
xmlns=httpwwww3org2000svg
xmlnsxlink=httpwwww3org1999xlink
xmlnsa=httpnsadobecomAdobeSVGViewerExtensions30ldquo
x=0px y=0px width=400px height=400px viewBox=0 0 400
400ldquo
enable-background=new 0 0 400 400 xmlspace=preservegt
ltdefsgt ltdefsgt
ltrect fill=FF0000 stroke=none x=0 y=0 width=400
height=400gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=350250
50250 50150 350150gt
ltpolygon fill=FFFFFF stroke=FFFFFF points=250350
150350 15050 25050gt
ltsvggt
oumlffnen mit Hex-EditorzB
httpwwwonlinehexeditorcom
Grafikformate
und verlustbehaftete Komprimierung
Wie viel Information ist noumltig
Anfangs- und Endpunkt definieren die Linie eindeutig
Mittelpunkt und Radius definieren den Kreis eindeutig
Die Eckpunkte definieren das Polygon eindeutig
Vektorgrafik
Mit allgemeinen Kurven (zB Bezier Kurven) und noch mehr Parametern kann man jede beliebige Form berechen
kann zu extrem geringen Dateigroumlssen fuumlhren
Vektorgrafiken sind beliebig skalierbar
26 Kb
26 Kb
Reine Vektorgrafikformate Sind nicht weit verbreitet meist proprietaumlr in
Verbindung mit einem Editor ndash zB Adobe Illustrator (ai)
Ausnahme SVG (scalable vector graphics) Benutzt werden Vektorgrafiken aber oft in
Kombination zB einzelne Ebenen in Photoshop Vektor-Fonts Zeichnungen in Word oder Powerpoint in Druckformaten (PDF EPS)
Interessant pptx hacken
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Grafikformate
und verlustbehaftete Komprimierung
Wie viel Information ist noumltig
Anfangs- und Endpunkt definieren die Linie eindeutig
Mittelpunkt und Radius definieren den Kreis eindeutig
Die Eckpunkte definieren das Polygon eindeutig
Vektorgrafik
Mit allgemeinen Kurven (zB Bezier Kurven) und noch mehr Parametern kann man jede beliebige Form berechen
kann zu extrem geringen Dateigroumlssen fuumlhren
Vektorgrafiken sind beliebig skalierbar
26 Kb
26 Kb
Reine Vektorgrafikformate Sind nicht weit verbreitet meist proprietaumlr in
Verbindung mit einem Editor ndash zB Adobe Illustrator (ai)
Ausnahme SVG (scalable vector graphics) Benutzt werden Vektorgrafiken aber oft in
Kombination zB einzelne Ebenen in Photoshop Vektor-Fonts Zeichnungen in Word oder Powerpoint in Druckformaten (PDF EPS)
Interessant pptx hacken
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Wie viel Information ist noumltig
Anfangs- und Endpunkt definieren die Linie eindeutig
Mittelpunkt und Radius definieren den Kreis eindeutig
Die Eckpunkte definieren das Polygon eindeutig
Vektorgrafik
Mit allgemeinen Kurven (zB Bezier Kurven) und noch mehr Parametern kann man jede beliebige Form berechen
kann zu extrem geringen Dateigroumlssen fuumlhren
Vektorgrafiken sind beliebig skalierbar
26 Kb
26 Kb
Reine Vektorgrafikformate Sind nicht weit verbreitet meist proprietaumlr in
Verbindung mit einem Editor ndash zB Adobe Illustrator (ai)
Ausnahme SVG (scalable vector graphics) Benutzt werden Vektorgrafiken aber oft in
Kombination zB einzelne Ebenen in Photoshop Vektor-Fonts Zeichnungen in Word oder Powerpoint in Druckformaten (PDF EPS)
Interessant pptx hacken
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Vektorgrafik
Mit allgemeinen Kurven (zB Bezier Kurven) und noch mehr Parametern kann man jede beliebige Form berechen
kann zu extrem geringen Dateigroumlssen fuumlhren
Vektorgrafiken sind beliebig skalierbar
26 Kb
26 Kb
Reine Vektorgrafikformate Sind nicht weit verbreitet meist proprietaumlr in
Verbindung mit einem Editor ndash zB Adobe Illustrator (ai)
Ausnahme SVG (scalable vector graphics) Benutzt werden Vektorgrafiken aber oft in
Kombination zB einzelne Ebenen in Photoshop Vektor-Fonts Zeichnungen in Word oder Powerpoint in Druckformaten (PDF EPS)
Interessant pptx hacken
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
26 Kb
Reine Vektorgrafikformate Sind nicht weit verbreitet meist proprietaumlr in
Verbindung mit einem Editor ndash zB Adobe Illustrator (ai)
Ausnahme SVG (scalable vector graphics) Benutzt werden Vektorgrafiken aber oft in
Kombination zB einzelne Ebenen in Photoshop Vektor-Fonts Zeichnungen in Word oder Powerpoint in Druckformaten (PDF EPS)
Interessant pptx hacken
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Reine Vektorgrafikformate Sind nicht weit verbreitet meist proprietaumlr in
Verbindung mit einem Editor ndash zB Adobe Illustrator (ai)
Ausnahme SVG (scalable vector graphics) Benutzt werden Vektorgrafiken aber oft in
Kombination zB einzelne Ebenen in Photoshop Vektor-Fonts Zeichnungen in Word oder Powerpoint in Druckformaten (PDF EPS)
Interessant pptx hacken
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Konzepte Beispiele Vektor- vs Raster Farbtiefe
indizierte Farben Farbraum
RGB(A) CMYK LAB Pixel
zusammenfassen Farbverlauf Lauflaumlnge
svg bmp jpg gif png tiff RAW psd eps
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Reine Rastergrafikformate Produzieren sehr grosse Dateien (aber
verlustfrei) Beispiele
bmp ndash nur Windows veraltet pict ndash nur MAC veraltet tiff ndash (wenn ohne Komprimierung) Bestes Format
fuumlr sehr hohe Qualitaumlt uumlblich beim Drucken RAW ndash reine Sensordaten fuumlr jede Kamera anders
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
RAW ist abhaumlngig von Kamerasensor bzw ndashHersteller
DNG ist Adobes Versuch fuumlr ein herstelleruumlbergreifendes Standard-RAW-Format
RAW-Dateien haben eine houmlhere Farbtiefe (10 ndash 16 Bit)
RAW-Dateien richten sich nach dem geomet-rischen Layout des Sensors meist Bayer-Matrix
Arbeitsschritte wie Demosaicing Rauschunterdruumlckung Weissabgleich oder Tonwertkorrekturen koumlnnen mit RAW-Daten in der Nachbearbeitung festgelegt werden Verschieden Algorithmen fuumlhren zu leicht
unterschiedlichen Ergebnissen Bei starken Manipulationen verhilft die Farbtiefe zu
besseren Ergebnissen
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Die uumlblichsten Grafikformate (jpg amp gif)
Komprimieren die Information reiner Rastergrafiken
Nehmen ggf Informationsverlust in Kauf (meist variabel)
Ansaumltze zum (verlustbehafteten) Komprimieren1 mehrere Pixel zusammenfassen2 Speicherplatz sparen bei der Repraumlsentation von
Farben
Dabei geht es immer darum moumlglichst die Informationen zu verlieren die (optisch) keinen grossen Unterschied machen
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
JPG amp GIF Pixel zusammenfassen
Farben repraumlsentieren
Besonderheiten
Anwendungsgebiet
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
JPG in Bildern
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
GIF in Bildern
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Probleme amp Spezialitaumlten
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Formatentscheidungen Sie wollen mit ihrer Digitalkamera ein Photo
aufnehmen um dann Sie dann im Internet einen Abzug in Postergroumlsse zu bestellen Wie gehen Sie optimalerweise vor
Ein Freund von ihnen hat gehoumlrt dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind Er hat ein Logo fuumlr seine Webseite gezeichnet (von Hand) und fragt Sie wie er es in ein Vektorformat umwandelt Was raten Sie ihm
Sie wollen ihren Freunden ein paar Urlaubsbilder per E-Mail schicken Wie gehen Sie vor
Fuumlr die Maturazeitung verfassen Sie einen Artikel in dem sie auch einige statistische Grafiken zeigen wollen Worauf achten Sie
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Zusammenfassung1 Ein Bild besteht aus Pixeln (Rastergrafik)
Aufloumlsung Farbraum Farbtiefe Transparenz(ggf) verlustbehaftete Komprimierung1 Farben indizieren (gif) 2 Farbtiefe (in LAB-Farbraum) reduzieren (jpg)3 Bloumlcke gleicher Pixel zusammenfassen (gif)4 Farbverlaumlufe zusammenfassen (jpg)
2 Ein Bild besteht aus geometrischen Objekten bzw Kurven (Vektorgrafik)
Wie beschreibt man die Formen welche Parameter gibt es
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Digitales Koffer packen
bzw verlustfreie Komprimierung
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Aufgabenstellung Sie wollen ihrem Freund eine Text-Botschaft
uumlbermitteln koumlnnen dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binaumlrzahlen benutzen)
Uumlberlegen Sie sich eine Methode wie die gegebene Botschaft moumlglichst genau und moumlglichst kompakt in Zahlen uumlbersetzt werden kann Dann erstellen Sie zwei Textdokumente1 Ein Dokument soll nur die Zahlenfolge enthalten2 Im anderen Dokument formulieren Sie eine
Anleitung mit deren Hilfe ihr Freund die urspruumlngliche Botschaft aus der Zahlenfolge rekonstruieren kann
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Auswertung Hat es geklappt Was war schwierig Welche Informationen wurden uumlbermittelt
(genau) Wie viele Zahlen waren noumltig (kompakt) Welche anderen Botschaften koumlnnten so
verschickt werden Welche grundsaumltzliche Idee steckt hinter
dieser Methode
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
ArbeitsauftragIhr Ziel ist herauszufinden wie die Huffman Codierung funktioniert und sie selbst anwenden zu koumlnnen Benutzen Sie dazu das Applet
HuffmanAppletjar Experimentieren Sie mit dem Applet (nur
Huffman Code) und versuchen Sie die Fragen im Arbeitsblatt AB Huffman Komprimierungdoc zu beantworten
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Besprechung Suchen Sie sich einen Partner und tauschen
Sie ihre Ergebnisse aus Notieren Sie alles was ihnen beiden noch
unklar ist Koumlnnen Sie die grundsaumltzliche Idee
formulieren
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Konzepte Beispiele Block-Codierung Frequenz-Codierung Praumlfixfreier Code
Telefonnummern Morse-Code
Huffman Codierung Arithmetische
Codierung
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Frequenzcodierung
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Praumlfixfreie TelefonnummernWas Telefonnummer
Allgemeiner Notruf 112
Feuerwehrnotruf 118
Polizeinotruf 117
Sanitaumltsnotruf 144
Rega (Rettungshelikopter) 1414
Pannenhilfe 140
Toxikologisches Institut (bei Vergiftungen) 145
Auch normale Telefonnummern erfuumlllen die Fano-Bedingung zB
0789218418 wenn das eine guumlltige Nummer ist
078921841 dann kann es diese
07892184182 oder diese nicht geben
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Information Genau amp Kompakt
Codieren Komprimieren Koffer (~ Format) so waumlhlen
dass alles eingepackt werden kann was man im Urlaub vielleicht brauchen koumlnnte
Ziel Der Koffer soll fuumlr alle Urlaube geeignet sein
Effizient packen so dass moumlglichst wenig Luft im Koffer bleibt kann davon abhaumlngen was genau eingepackt wurde
Ziel Der Koffer fuumlr diesen Urlaub soll moumlglichst klein werden
Koffer packen(Komprimieren von Information)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Effizientes Packen von Buchstaben
1 Codieren von Buchstaben als binaumlre Codewoumlrter
ASCII Code
2 Komprimieren der Bitsequenz zB Huffman Codierung kuumlrzere Sequenz + neue
Codewoumlrter
3 Speichern oder Uumlbermitteln4 Dekomprimieren5 Decodieren -gt Darstellen
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Komprimierung von Buchstaben
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Dezimal Hex Binaumlr Zeichen96 60 0110 0000 ` 97 61 0110 0001 a 98 62 0110 0010 b 99 63 0110 0011 c
100 64 0110 0100 d 101 65 0110 0101 e 102 66 0110 0110 f 103 67 0110 0111 g 104 68 0110 1000 h 105 69 0110 1001 i 106 6A 0110 1010 j 107 6B 0110 1011 k 108 6C 0110 1100 l 109 6D 0110 1101 m 110 6E 0110 1110 n 111 6F 0110 1111 o 112 70 0111 0000 p 113 71 0111 0001 q 114 72 0111 0010 r 115 73 0111 0011 s 116 74 0111 0100 t 117 75 0111 0101 u 118 76 0111 0110 v 119 77 0111 0111 w 120 78 0111 1000 x 121 79 0111 1001 y 122 7A 0111 1010 z 123 7B 0111 1011 124 7C 0111 1100 | 125 7D 0111 1101 126 7E 0111 1110 ~ 127 7F 0111 1111 DEL
ASCII(American Standard Code for Information Interchange)
Kleinbuchstaben
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Huffman Komprimierung
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Huffman Decodierung Die binaumlre Nachricht
0100111101001110010100111110
Die Codewoumlrtere =110d =111o = 00p =010s =011u =100c =101
HinweisAm einfachsten ist es wenn Sie sich zunaumlchst den zu den Codewoumlrtern gehoumlrenden Baum aufzeichnen
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Und was daran war jetzt praumlfixfrei
o = 00p = 010s = 011u = 100c = 101e = 110d = 111
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Komprimierung allgemein
originale Nachricht(zB ASCII)
codierte Nachricht + Liste
(zB Huffman)
codierte Nachricht
+ Liste(zB Huffman)
originale Nachricht
(zB ASCII)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Welche Informationen braucht es hier
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Grundsaumltzliche Idee bei Huffman Haumlufige Zeichen (Buchstaben) werden in
kurze Codewoumlrter uumlbersetzt (Frequenzcodierung)
Im Binaumlrsystem funktioniert das nur wenn der entstehende Code (die Codewoumlrter) praumlfixfrei ist
Die Baumlumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung die diese beiden Prinzipien optimal verbindet (allerdings ist der resultierende
Komprimierungsgrad nur annaumlhernd optimal noch effizienter ist die Arithmetische Codierung)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Pseudocode
ist eine sprachliche Mischung aus natuumlrlicher Sprache mathematischer Notation und einer houmlheren Programmier-sprache
arrayMax(A n) Input Ein Array A der n Integer Werte enthaumllt Output Das maximale Element in A
currentMax = A[0]
for i = 1 to n - 1
if currentMax lt A[i]
currentMax = A[i]
end
end
return currentMax
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
decodieren(nachricht_bin codewortliste)
Input die Bitsequenz nachricht_bin und eine Liste die binaumlren Codeworten Zeichen zuordnet Output nachricht_txt die decodierte Nachricht eine Sequenz von Zeichen
nachricht_txt = leer
laumlnge = 1
while (nachricht_bin = leer)
zeichen_bin = get_first_n_bits(nachricht_bin laumlnge)
if found_in(zeichen_bin codewortliste)
zeichen_txt = get_letter(zeichen_bin codewortliste)
nachricht_txt = attach_letter(zeichen_txt)
nachricht_bin = delete_first_n_bits(laumlnge)
laumlnge = 1else
laumlnge ++end
end
return nachricht_txt
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Pseudocode fuumlr Huffman Codierung
codieren(nachricht_ascii)
Input die Bitsequenz nachricht_ascii bestend aus einer Sequenz von ASCII
Zeichen (jeweils ein Byte) Output nachricht_bin die codierte Nachricht eine Bitsequenz codewortliste eine Liste die binaumlren Codeworten ASCII Zeichen zuordnet
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Huffman Komprimierung1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Fragen zu Huffman amp Komprimierung
1 Was ist die grundlegende Idee hinter Huffman Komprimierung2 Wann ist Huffman am effizientesten3 Wann lohnt sich Huffman sicher nicht4 Warum benutzt zB Word kein Huffman Komprimierung5 Was waumlren andere grundlegende Ideen zu Komprimierung von
Daten (Erklaumlren Sie anhand eines Beispiels)6 Was sind allgemeine Vorteile von Datenkomprimierung7 Was sind allgemeine Nachteile der Datenkomprimierung
originale Nachricht
codierte Nachricht
codierte Nachricht
originale Nachricht
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Enthropie
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Konzepte Beispiele (Informations) Entropie Entropieschaumltzung
Huffman in zip
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Was ist eigentlich Information Was ist das kleinstmoumlgliche Bisschen an
Information
Sein oder nicht Seindas ist hier die Frage
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Ein BIT ist
eine Bezeichnung fuumlr eine Binaumlrziffer (uumlblicherweise bdquo0ldquo und bdquo1ldquo)
eine Maszligeinheit fuumlr die Datenmenge bei digitaler Speicherung von Daten Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binaumlren Variablen zur Abbildung der Information
eine Maszligeinheit fuumlr den Informationsgehalt (siehe Shannon) Dabei ist 1 Bit der Informationsgehalt der in einer Auswahl aus zwei gleich wahrscheinlichen Moumlglichkeiten enthalten ist
There are 10 sorts of peopleo those who unterstand
binary ando those who do not
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)
1 0101010101010101 2
2 1111111111111111 1 (= 1 Bit)
3 0110001101100101 4c
4 0010111001100101 4b (ASCII = ce)
5 0000000011111111 4a
6 0011001100110011 3
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Entropie ist
eine physikalische Zustandsgroumlszlige in der Thermodynamik
ein Maszlig fuumlr den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems
Warum sollte uns das interessieren Huffman Komprimierung ist das
Paradebeispiel fuumlr eine Entropiecodierung
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Entropie amp Wahrscheinlichkeit Der Normalzustand (= maximale Entropie) ist
die Gleichverteilung Abweichungen von der Gleichverteilung
bedeuten es gibt eine gewisse Ordnung Struktur man kann es kompakter beschreiben
0100011110101010100101010101
0000000000000011111111111111
was ist
wahrscheinlich
e
rwas traumlgt m
ehr
Informatio
n
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Berechnen der Informationsdichte
Hgleichvert log2 p H = Entropie Z = endliches Alphabet von Zeichen z = ein einzelnes Zeichen p = Auftretenswahrscheinlichkeit
(=Haumlufigkeit zGesamthaumlufigkeit)
H pzzZ
log2 pz
HABC log21
2647004
Bit
Zeichen
HABC pa log2 pa pb log2 pb 40629 Bits
Zeichen
Fuumlr das deutsche Alphabet Eine perfekte Komprimierung wuumlrde
genau diesen Entropiewert erreichen
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Wozu brauchen wir das1 ASCII Nachricht in 8-er Bloumlcke aufteilen
zaumlhlen wie oft jeder Block vorkommt2 Bloumlcke nach Haumlufigkeit ordnen3 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen4 ASCII Nachricht nach Huffman uumlbersetzen
siehe Liste5 Bitsequenz amp Liste in File speichern evtl
verschicken 6 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Was wenn wir nicht wissen ob es
ASCII Zeichen sind(zB beim zippen)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Wozu brauchen wir das
Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen
8er 01100011 011001014er 0110 0011 0110 0101
1 0101010101010101
2 1111111111111111
3 0110001101100101
4 0010111001100101
5 0000000011111111
6 0011001100110011
Normierung fuumlr unterschiedliche Block- bzw Zeichenlaumlngen
noch allg
emeiner
konditio
nelle
Entropie
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Huffman generalisiert1 Binaumlre Nachricht durch
EntropietestsSchaumltzung darauf analysieren welche Bits ein Zeichen bilden sollten so dass sich die niedrigste Entropie ergibt
2 Binaumlre Nachricht in Zeichen aufteilen zaumlhlen wie oft jedes Zeichen vorkommt
3 Bloumlcke nach Haumlufigkeit ordnen4 Mit Huffman Baum praumlfixfreie Codewortliste
erstellen5 Binaumlre Nachricht nach Huffman uumlbersetzen
s Liste6 Bitsequenz amp Liste in File speichern evtl
verschicken 7 Auch transportiert werden muss die
Information dass dieses File Huffman-codiert ist
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Entropiecodierung bedeutet mit einer Entropieschaumltzung herausfinden
welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte
diese Zeichen dann so in praumlfixfreie Codewoumlrter uumlbersetzen dass den haumlufigsten Zeichen die kuumlrzesten Codewoumlrter zugeordnet werden
ACHTUNG trade-off der Listengroumlsse beruumlcksichtigen
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Entropiecodierung ist eine allgemeine Methode um zu bestimmen
wie viel Luft im Koffer ist und den Koffer dann so umzupacken dass moumlglicht wenig Luft verbleibt
wie Legomodell verpacken Zuerst muss man herausfinden in wie kleine Teile man es zerlegen soll und dann braucht man eine Methode um diese Teile effizient ineinander zu stapeln
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Optimalitaumlt der Huffman Codierung ist die wohl am weitesten verbreitete Art der
Entropiecodierung wird oft als letzter Schritt auf beliebige
Bitsequenzen angewandt ist nur annaumlhernd optimal Bsp
voumlllig zufaumlllige Sequenz mit drei mal mehr Nullen als Einsen
- (14lg(14)+34lg(34)) = 0811278 BitZeichen(=Bit)
weniger als ein Bit geht aber nicht die beiden kuumlrzest moumlglichen Codewoumlrter haben jeweils ein Bit
Noch bessere Loumlsung Arithmetische Codierung
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Arithmetische Codierung Die gesamte Nachricht in einer einzigen
Zahl ausserdem braucht es die Zeichen und ihre
Frequenz und einen schnellen Computer A = 06
B = 02C = 01D = 01Zahl =
0536
Nachricht = ACD
Die gesamte Nachricht in einer einzigen Zahl
ausserdem braucht es die Zeichen und ihre Frequenz
und einen schnellen Computer
Applet losslessjar
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Lernziele - erreicht Sie verstehen was Hamlet mit dem
zersplitternden Weinglas zu tun hat und wie beide mit der Huffman Kodierung zusammenhaumlngen
Sie kennen die allgemeine Form der Huffman Kodierung
Zusatz Sie koumlnnen erklaumlren
a) warum die Block-Entropie einer Bitsequenz am kleinsten ist wenn man die gesamte Sequenz als einen einzigen Block (= ein Zeichen) ansieht
b) warum es trotzdem keinen Sinn macht die ganze Sequenz als eine einziges Zeichen zu kodieren
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Hausaufgaben Pruumlfziffern (jede(r) eine andere)
Moumlglichkeiten s Wiki Eine uumlbersichtliche Seite zusammenstellen mit
Kurzbeschreibung Berechnung dieser Pruumlfziffer Beispiel Versuch einer allgemeinen Definition von Pruumlfziffer
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Ein bisschen Magie
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Fehlerkorrigierende Codes
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Wie funktioniert der Trick
Eine Hinweis
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 0 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Wie funktioniert der Trick
Eine zufaumlllige binaumlre Matrix wird um eine Spalte und eine Zeile ergaumlnzt
Dort wird jeweils das Paritaumltsbit eingetragen alle Zeilen und Spalten sind gerade
Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile amp Spalte
Technisch ausgedruumlckt fuumlr 5x5
Ein (2516)-fehlerkorrigierender Code mit HD = 4
0 0 0
1 0 1
0 1 0
0 0
0 0
1 1
1 0 0
0 0 1
0 1
1 0
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Exkurs Zusammenhang mit Pruumlfziffern
Pruumlfziffern dienen der Fehlererkennung (wie Paritaumltsbits)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Wie funktionieren Pruumlfziffern (allgemein)
Sender
Empfaumlnger
berechnen3
anhaumlngen
berechnen3
vergleichen
ungleiche Pruumlfziffern es ist ein Fehler passiert
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Pruumlfziffern
Eigenschaften der Pruumlfzifferberechnung Menge der redundanten Informationen Wie viele Fehler werden erkannt Welche Fehler werden erkannt
Redundanz 1 Dezimalstelle
10 der Zeichen haben dieselbe
Pruumlfziffer aber die Versagensquote
ist niedriger weil die haumlufigsten Fehler erkannt
werden (zB Zahlendreher)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Konzepte Beispiele Fehlererkennung
Pruumlfsumme Paritaumltsbit
Fehlerkorrektur Hamming-Distanz
Binaumlrmagie Hamming-Code CIRC
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Paritaumltsbits sind minimale Pruumlfziffern
Mit mehreren geschickt kombinierten Paritaumltsbit koumlnnen Fehler nicht nur erkannt sondern auch korrigiert werden
Redundanz 1 Bit
50 der Zeichen haben dasselbe
Pruumlfbit
aber der einfachste Fehler (ein geflipptes
Bit) wird erkannt
1 1 1
0
0
0 0
1 1
(94)Code ndash 5 Bit redundant(geht das effizienter)kann ein geflipptes Bit
korrigierenkann zwei geflippte Bit
erkennen(sicher wie beweisen)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
5
6
7
1
1
0
2
0
3
1
4
5
6
7
Daten P-Bits
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
(74)Hamming-Code codieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
1
1
0
2
0
31
4
0
5
0
6
1
7
1
1
0
2
0
3
1
4
0
5
0
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
1
2
0
31
4
1
5
1
6
1
7
0
1
1
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
(74)Hamming-Code decodieren
3 redundante Bits
1 Bit Korrektur 2 Bit Erkennung
()
0
1
0
2
0
31
4
1
5
1
6
1
7
0
1
0
2
0
3
1
4
0
5
1
6
1
7
Daten P-Bits
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Uumlben
codieren decodieren
0
1
0
2
0
3
1
4 5 6 7
1
1
1
2
0
3
1
4 5 6 7
1
1
0
2
1
3
1
4 5 6 7
0
1
1
2
1
3
1
4
1
5
1
6
1
7
0
1
0
2
0
3
0
4
0
5
0
6
1
7
0
1
1
2
1
3
1
4
1
5
1
6
0
7
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Hamming-Distanz (HD)
Definition Hamming-Distanz n Stellen Unterschied zwischen zwei Zeichen (hier
Bit)
Hamming-Distanz als Eigenschaft eines Codes Minimale HD zwischen zwei (guumlltigen)
Codewoumlrtern
1
1
1
2
0
3
1
4 5 6 7
1
1
1
2
1
3
1
4 5 6 7
1
1
1
2
0
3
1
4
1
5
0
6
0
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7HD = 1 HD = 3
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur Bitflips Erkennung
Bitflips
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Der (74)Hamming Code verteilt die 16 (24 Bit)
urspruumlng-lichen Codewoumlrter so auf die 7 Bit dass eine HD = 3 garantiert ist
1 Bitflip kann korrigiert werden2 Bitflips koumlnnen erkannt
werdenAllgemein in Anhaumlngigkeit von der HD des Codes
Korrektur HD2 - 1 Bitflips Erkennung HD - 1 Bitflips
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Erkennen amp Korrigieren geht nicht gleichzeitig Warum
Der erweiterte (84)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden
100 Redundanz fuumlr 25 Korrekturleistung
Lohnt sich das (und ist das richtig gerechnet)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 1 Flip-Wahrscheinlichkeit pro Bit In ~96 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~39 gibt es einen Fehler kann korrigiert werden In ~006 gibt es mehr als einen Fehler keine Korrektur
moumlglich
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Lohnt sich dasP fuumlr ein Bit geflippt zu
werden
Anzahl Bits
Eines von 4 Bit ist geflippt
P fuumlr genau einen Flip
P fuumlr keinen Flip P fuumlr einen oder keinen
Flip P fuumlr mehr als einen Flip
P fuumlr einen oder mehr Flips
httpstattrekcomonline-calculatorbinomialaspx
Resultat fuumlr 001 Flip-Wahrscheinlichkeit pro Bit In ~9996 der 4-Bit Sequenzen gibt es sowieso keinen
Fehler In ~0039 gibt es einen Fehler kann korrigiert werden In ~000000006 gibt es mehr als einen Fehler keine
Korrektur
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Wie viel Redundanz lohnt sich Antwort Es kommt darauf an
Parameterkombinationen bei Hamming-Codes (HD = 3)
n k N = n + k
Datenbits(Datenwort)
Paritybits(Kontrollstellen)
Gesamtlaumlngedes Codewortes
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
247 8 255
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Reale Anwendungen reine Hamming-Codes selten
in manchen WLAN-Standards zur Korrektur von Speicheradressen
Noch etwas komplizierter ndash obwohl basierend auf denselben Grundprinzipien ndash ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs Cross-Interleaved Reed-Solomon Code (CIRC) httpwwwyoutubecomwatchv=sYO6vm9PTsI (ab
310) httpwwwtheseusfibitstreamhandle1002432913
Reed-Solomon20Encoding20and20Decodingpdfsequence=1
httpcwwweenctuedutwcoursechannel_codingFEC_CDpdf
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Cross-Interleaved Reed-Solomon Code
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Performance of CIRC (~265192) Both R-S coders (C1 and C2) have four parities and their minimum
distance is 5 If error location is not known up to two symbols can be corrected If the errors exceed the correction limit they are concealed by
interpolation Since even-numbered sampled data and odd-numbered sampled
data are interleaved as much as possible CIRC can conceal long burst errors by simple linear interpolation Max completely correctable burst length is about 4000 data bits
(25 mm track length) Max interpolatable burst length in the worst case is about 123000
data bits (77 mm track length) Sample interpolation rate is one sample every 10 hours at BER 10-4
(Bit Error Rate) at and 1000 samples per minute at BER 10-3 Undetectable error samples (clicks) less than one every 750 hours
at BER = 10-3 and negligible BER = 10-4
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Formate Codes amp Algorithmen
Definitionen und Zusammenhaumlnge
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Komprimierung allgemein
originale Nachricht(Bitsequenz)
codierte Nachricht + Liste (Bitsequenz)
codierte Nachricht
+ Liste(Bitsequenz)
originale Nachricht
(Bitsequenz)
KomprimierenzB mit Huffman Codierung
DekomprimierenzB mit Huffman Decodierung
speichern verschicken
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Codieren
Welch
e
Info
rmatio
ne
n bra
ucht e
s
hier
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellenW
ie geht das
Beispiel
bdquoFischers
Fritz
fischt
frischeldquo
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Und wie passt das jetzt alles zusammen
Information
Codierung
Format
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Definition Code
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Definition von Code lang Im Allgemeinen ist ein Code eine Vereinbarung uumlber einen Satz
(eine Menge) von Symbolen (Bedeutungstraumlgern oder Verweisen) zum Zweck des Informationsaustauschs Information existiert nicht in bdquoreinerldquo Form sie ist immer in irgendeiner Weise formuliert
Ein Code ist ndash allgemein ausgedruumlckt ndash eine Formulierung von Information Das setzt folgende Elemente voraus
1 mindestens eine informationsformulierende Instanz (AufzeichnerSender)
2 mindestens eine informationsempfangende Instanz (LesenderEmpfaumlnger) ndash kann unter Umstaumlnden auch identisch mit (1) sein
3 ein zu uumlbermittelnder abstrakter Inhalt die Information4 eine Vereinbarung zum Zweck der Informationsformulierung und
gegebenenfalls Informationsuumlbermittlung Diese enthaumllt einen Satz von Bedeutungstraumlgern oder Symbolen der beiden Instanzen (1) und (2) bekannt ist und gegebenenfalls Regeln zur Verwendung der Symbole
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Komprimieren
Komprimierte digitale
Information
Komprimierte digitale
Information
Entkomprimieren
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte digitale
Information
Verschluumlsselte digitale
Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Codieren allgemein
Nicht-digitale Information
Digitale Information
Nicht-digitale Information
Digitale Information
Verschluumlsseln
Verschluumlsselte Information
Verschluumlsselte Information
Entschluumlsseln
Digitalisieren EntdigitalisierenDarstellen
Komprimieren Kompr
Information
Kompr Informatio
n
Entkomprimieren
Format
Format
Format
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Definition von Code kurz
Beispiele fuumlr Codes Ein Code ist eine Anleitung um Zeichen eines Zeichensystems in die eines anderen zu uumlbertragen
Ein Code definiert eine Umformulierung von Information
Morse Code ASCII Code Huffman Codierung Hamming Code Binaumlrcode Quellcode Genetischer Code Neuronaler Code Schrift Sprache
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Wozu Information umformulieren Damit ein spezieller Empfaumlnger sie verstehen
kann zB Uumlbersetzung in andere Sprache Digitalisieren
Drucken Um bestimmte Uumlbertragungswege oder
Speichermedien zu nutzen zB Morsen Telefonieren Buumlcher Fotos E-Mail
Um Platz zu sparen zB DNA Komprimierung Datenuumlbertragung
Um Fehler bei der Uumlbertragung zu vermeiden zB DNARNA Hamming Code
Um Inhalte vor Unbefugten zu verstecken zB Geheimsprachen Verschluumlsselung
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)
Computer machen eigentlich nichts anderes als Information mithilfe von Codes von einem Format in das andere umzuwandeln damit diese Information gespeichert transportiert verschluumlsselt dargestellt extrahiert verglichen zusammengefuumlhrt oder sonst wie verarbeitet werden kann
INFORMATIK = Automatische Informationsverarbeitung
Achtung Gerade haben wir uns Codes OHNE INFORMATIONSVERLUST angeschaut Es kann aber auch sein dass bdquounwichtigeldquo Information verloren geht zB weil man den Unterschied sowieso kaum bemerkt (jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der groumlsste Wert die Richtigkeit einer Antwort etc)