113
Algorithmik Formate, Codes & Algorithmen

Algorithmik

  • 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

Page 1: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 2: Algorithmik

(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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 3: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 4: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 5: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 6: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 7: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 8: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 9: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 10: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 11: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 12: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 13: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 14: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 15: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 16: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 17: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 18: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 19: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 20: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 21: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 22: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 23: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 24: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 25: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 26: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 27: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 28: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 29: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 30: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 31: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 32: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 33: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 34: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 35: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 36: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 37: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 38: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 39: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 40: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 41: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 42: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 43: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 44: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 45: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 46: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 47: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 48: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 49: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 50: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 51: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 52: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 53: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 54: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 55: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 56: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 57: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 58: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 59: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 60: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 61: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 62: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 63: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 64: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 65: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 66: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 67: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 68: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 69: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 70: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 71: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 72: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 73: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 74: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 75: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 76: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 77: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 78: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 79: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 80: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 81: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 82: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 83: Algorithmik

(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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 84: Algorithmik

(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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 85: Algorithmik

(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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 86: Algorithmik

(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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 87: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 88: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 89: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 90: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 91: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 92: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 93: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 94: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 95: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 96: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 97: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 98: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 99: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 100: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 101: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 102: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 103: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 104: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 105: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 106: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 107: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 108: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung
Page 109: Algorithmik

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)

  • Algorithmik
  • (Datei-) Formate
  • Digitale Information = Bitsequenzen
  • Definition (Daten-Datei-) Format
  • Universalitaumlt vs Speicherplatzbedarf
  • Digitale Repraumlsentation von Schach
  • Ein Schach Format (sch) 257 BIT
  • Ein Format fuumlr Schieber-Jass
  • Und woher weiss der Computer welches Format eine Datei hat
  • Beispielrtf
  • RTF (Rich Text Format)
  • RTF Spezifikationen
  • Zusammenfassung
  • Eine Analogie zur Zusammenfassung
  • Konzepte Beispiele
  • Datei Raetsel
  • Grafikformate
  • Wie viel Information ist noumltig
  • Vektorgrafik
  • Slide 20
  • Reine Vektorgrafikformate
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Konzepte Beispiele (2)
  • Reine Rastergrafikformate
  • RAW
  • Die uumlblichsten Grafikformate (jpg amp gif)
  • JPG amp GIF
  • JPG in Bildern
  • GIF in Bildern
  • Probleme amp Spezialitaumlten
  • Formatentscheidungen
  • Zusammenfassung (2)
  • Digitales Koffer packen
  • Aufgabenstellung
  • Auswertung
  • Arbeitsauftrag
  • Besprechung
  • Konzepte Beispiele (3)
  • Frequenzcodierung
  • Praumlfixfreie Telefonnummern
  • Information Genau amp Kompakt
  • Effizientes Packen von Buchstaben
  • Komprimierung von Buchstaben
  • Slide 48
  • Huffman Komprimierung
  • Huffman Decodierung
  • Und was daran war jetzt praumlfixfrei
  • Komprimierung allgemein
  • Grundsaumltzliche Idee bei Huffman
  • Pseudocode
  • Slide 55
  • Pseudocode fuumlr Huffman Codierung
  • Huffman Komprimierung
  • Fragen zu Huffman amp Komprimierung
  • Enthropie
  • Konzepte Beispiele (4)
  • Was ist eigentlich Information
  • Ein BIT ist
  • Slide 63
  • Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteig
  • Entropie ist
  • Entropie amp Wahrscheinlichkeit
  • Berechnen der Informationsdichte
  • Wozu brauchen wir das
  • Wozu brauchen wir das (2)
  • Huffman generalisiert
  • Entropiecodierung bedeutet
  • Entropiecodierung ist
  • Optimalitaumlt der Huffman Codierung
  • Arithmetische Codierung
  • Lernziele - erreicht
  • Hausaufgaben
  • Ein bisschen Magie
  • Fehlerkorrigierende Codes
  • Wie funktioniert der Trick
  • Wie funktioniert der Trick (2)
  • Wie funktioniert der Trick (3)
  • Exkurs Zusammenhang mit Pruumlfziffern
  • Wie funktionieren Pruumlfziffern (allgemein)
  • Wie funktionieren Pruumlfziffern (allgemein) (2)
  • Pruumlfziffern
  • Konzepte Beispiele (5)
  • Paritaumltsbits sind minimale Pruumlfziffern
  • (74)Hamming-Code codieren
  • (74)Hamming-Code codieren (2)
  • (74)Hamming-Code decodieren
  • (74)Hamming-Code decodieren (2)
  • Uumlben
  • Hamming-Distanz (HD)
  • Der (74)Hamming Code
  • Der (74)Hamming Code (2)
  • Erkennen amp Korrigieren geht nicht gleichzeitig Warum
  • Lohnt sich das
  • Lohnt sich das (2)
  • Wie viel Redundanz lohnt sich
  • Reale Anwendungen
  • Cross-Interleaved Reed-Solomon Code
  • Performance of CIRC (~265192)
  • Formate Codes amp Algorithmen
  • Komprimierung allgemein (2)
  • Codieren
  • Slide 106
  • Definition Code
  • Definition von Code lang
  • Codieren allgemein
  • Codieren allgemein (2)
  • Codieren allgemein (3)
  • Definition von Code kurz
  • Wozu Information umformulieren
  • Informatik = Automatische Informationsverarbeitung