Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Algorithmik Formate, Codes & Algorithmen. (Datei-) Formate.

Ähnliche Präsentationen


Präsentation zum Thema: "Algorithmik Formate, Codes & Algorithmen. (Datei-) Formate."—  Präsentation transkript:

1 Algorithmik Formate, Codes & Algorithmen

2 (Datei-) Formate

3 Digitale Information = Bitsequenzen  Ein Bit ist eine atomare Information  Einen Informationsgehalt bekommt ein Bit, wenn es etwas repräsentiert  z. B. schwanger / nicht schwanger  Mehrere Bits können komplexere Informationen repräsentieren  z.B. Zahlen, Farben,... (oft Datentypen)  Dazu muss man wissen, wofür 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 Form eine Formulierung von Information kann für vieles stehen (repräsentieren) 1 oder 0 Sein oder nicht Sein true oder false

4 Definition (Daten-/Datei-) Format:  Ein Format ist eine spezifische Anordnung von Daten (Bits) für 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 (für was steht ein Zeichen/Bitsequenz?) Diese grösstenteils impliziten (also nicht in der Sequenz enthaltenen) Informationen müssen allen Beteiligten bekannt sein – nur so kann man herausfinden, wofür die expliziten Informationen (Bitsequenz) stehen

5 Universalität vs. Speicherplatzbedarf  Ein Format macht nur Sinn, wenn es (für einen gewissen Bereich) universell ist, also bspw. alle Fotos speichern kann, nicht nur die grünen  Andererseits benötigt diese Universalität 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 z.B. die Codierung ausgetauscht oder explizit mitgeschickt werden kann?

6 Digitale Repräsentation von Schach  Was ist wichtig?  nur die Information, die einen Spielstande eindeutig definiert  Was ist möglich?  alle Spielstände müssen repräsentiert werden können  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 Vorschläge? Wie viele Bits brauchen Sie? oder: ein universeller digitale Koffer für Schach

7 Ein Schach Format (.sch), 257 BIT  Das erste Bit gibt an, wer am Zug ist (1=schwarz, 0=weiss)  Die folgenden 256 Bit repräsentieren 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 für die Farbe der Figur:  Die letzten 3 Bit pro Feld stehen für die Figur, die hier steht: 1 = schwarz 000 = leer 001 = Bauer 010 = Turm 011 = Springer 0 = weiss 100 = Pferd 101 = Dame 110 = König 111 = steht für nichts

8 Ein Format für 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 mögliche Zustand des Spiels binär repräsentiert werden kann.  Formulieren Sie die von Ihnen erfundene Codierung so, dass ein anderer Schüler eine entsprechende Bitsequenz in den Spielzustand zurückübersetzen könnte  Geben Sie an, wie viele Bits für die Speicherung eines Spielzustands benötigt werden

9 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. zusätzliche Angaben zur Formatierung machen, z.B. Version/Variation des Formats Parameter allgemeine Zusatzinformationen 1. Endung 2. Header  Diese Informationen sagen dem Computer, welche Brille er anziehen muss

10 Beispiel.rtf { \rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf250 {\fonttbl\f0\fnil\fcharset0 GoudyOldStyleT-Regular;} {\colortbl;\red255\green255\blue255;\red6\green10\blue58;} \paperw11900\paperh16840\margl1440\margr1440\vieww9000\viewh8 400\viewkind0 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\t x5669\tx6236\tx6803\ql\qnatural\pardirnatural \f0\fs36 \cf2 Lirum \b larum \b0 L\ ‘f6ffelstiel } öffnen mit Hex-Editor, z.B. http://www.onlinehexeditor.com/ öffnen mit Hex-Editor, z.B. http://www.onlinehexeditor.com/

11 RTF (Rich Text Format)  Entwickelt von Microsoft, aber frei verfügbar  Basierend auf Standard-Codetabellen (ASCII, UNICODE)  Lesbar von allen gängigen Texteditoren, wobei u.U. Teile der Layout-Information ignoriert werden

12 RTF Spezifikationen  Syntax: { }  Der header beinhalten Kontrollwörter, die mit Backslash anfangen und mit Leerzeichen getrennt werden  Im header wird zusätzliche Layoutinformation repräsentiert, z.B. 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 verfügbar sind, und dass die Blöcke innerhalb der Bitsequenz in der richtigen Reihenfolge vorliegen

13 Zusammenfassung  RTF kann mehr als TXT und weniger als DOC, das ist seine „digitale Nische“  RTF ermöglicht die Repräsentation von allgemeinen Layoutinformation durch standardisierte Kontrollwörter im header  Das Layout für Textteile geschieht durch Auszeichnung des Dokuments mit Kontrollwörtern im Text (wie HTML)

14 Bildinformation in einem etwas speziellen Format Die Brille implementiert die Decodierung Das Format gibt an, welche Brille man braucht Eine Analogie zur Zusammenfassung

15 Konzepte Beispiele  Format  Header  Endung  Zeichen  explizite & implizite Bestandteile  Universalität  Eigene Formate für Spiele .rtf

16 Datei: Raetsel <svg version="1.1“ xmlns="http://www.w3.org/2000/svg" xmlns:xlink=http://www.w3.org/1999/xlink xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/“ x="0px" y="0px" width="400px" height="400px" viewBox="0 0 400 400“ enable-background="new 0 0 400 400" xml:space="preserve"> öffnen mit Hex-Editor, z.B. http://www.onlinehexeditor.com/ öffnen mit Hex-Editor, z.B. http://www.onlinehexeditor.com/

17 Grafikformate und verlustbehaftete Komprimierung

18 Wie viel Information ist nötig? Anfangs- und Endpunkt definieren die Linie eindeutig Mittelpunkt und Radius definieren den Kreis eindeutig Die Eckpunkte definieren das Polygon eindeutig

19 Vektorgrafik  Mit allgemeinen Kurven (z.B. Bezier Kurven) und noch mehr Parametern kann man jede beliebige Form berechen  kann zu extrem geringen Dateigrössen führen  Vektorgrafiken sind beliebig skalierbar 26 Kb

20

21 Reine Vektorgrafikformate  Sind nicht weit verbreitet, meist proprietär, in Verbindung mit einem Editor – z.B. Adobe Illustrator (.ai)  Ausnahme: SVG (scalable vector graphics)  Benutzt werden Vektorgrafiken aber oft in Kombination, z.B.  einzelne Ebenen in Photoshop  Vektor-Fonts  Zeichnungen in Word oder Powerpoint  in Druckformaten (PDF, EPS)  Interessant:.pptx hacken

22

23

24

25

26 Konzepte Beispiele  Vektor- vs. Raster  Farbtiefe  indizierte Farben  Farbraum  RGB(A), CMYK, LAB  Pixel zusammenfassen  Farbverlauf  Lauflänge .svg .bmp .jpg .gif .png,.tiff, RAW,.psd, eps

27 Reine Rastergrafikformate  Produzieren sehr grosse Dateien (aber verlustfrei)  Beispiele .bmp – nur Windows, veraltet .pict – nur MAC, veraltet .tiff – (wenn ohne Komprimierung) Bestes Format für sehr hohe Qualität, üblich beim Drucken  RAW – reine Sensordaten, für jede Kamera anders

28 RAW  ist abhängig von Kamerasensor bzw. –Hersteller  DNG ist Adobes Versuch für ein herstellerübergreifendes Standard- RAW-Format  RAW-Dateien haben eine höhere Farbtiefe (10 – 16 Bit)  RAW-Dateien richten sich nach dem geomet- rischen Layout des Sensors, meist Bayer-Matrix  Arbeitsschritte wie Demosaicing, Rauschunterdrückung, Weissabgleich, oder Tonwertkorrekturen können mit RAW- Daten in der Nachbearbeitung festgelegt werdenDemosaicing  Verschieden Algorithmen führen zu leicht unterschiedlichen Ergebnissen  Bei starken Manipulationen verhilft die Farbtiefe zu besseren Ergebnissen

29 Die üblichsten Grafikformate (.jpg &.gif)  Komprimieren die Information reiner Rastergrafiken  Nehmen ggf. Informationsverlust in Kauf (meist variabel) Ansätze zum (verlustbehafteten) Komprimieren: 1. mehrere Pixel zusammenfassen 2. Speicherplatz sparen bei der Repräsentation von Farben Dabei geht es immer darum, möglichst die Informationen zu verlieren, die (optisch) keinen grossen Unterschied machen

30 JPG & GIF  Pixel zusammenfassen  Farben repräsentieren  Besonderheiten  Anwendungsgebiet

31 JPG in Bildern

32 GIF in Bildern

33 Probleme & Spezialitäten

34 Formatentscheidungen  Sie wollen mit ihrer Digitalkamera ein Photo aufnehmen, um dann Sie dann im Internet einen Abzug in Postergrösse zu bestellen. Wie gehen Sie optimalerweise vor?  Ein Freund von ihnen hat gehört, dass Vektorgraphiken wenig Speicherplatz brauchen und trotzdem skalierbar sind. Er hat ein Logo für 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?  Für die Maturazeitung verfassen Sie einen Artikel, in dem sie auch einige statistische Grafiken zeigen wollen. Worauf achten Sie?

35 Zusammenfassung 1. Ein Bild besteht aus Pixeln (Rastergrafik)  Auflösung, Farbraum, Farbtiefe, Transparenz? (ggf.) verlustbehaftete Komprimierung: 1. Farben indizieren (.gif) 2. Farbtiefe (in LAB-Farbraum) reduzieren (.jpg) 3. Blöcke gleicher Pixel zusammenfassen (.gif) 4. Farbverläufe zusammenfassen (.jpg) 2. Ein Bild besteht aus geometrischen Objekten, bzw. Kurven (Vektorgrafik)  Wie beschreibt man die Formen, welche Parameter gibt es?

36 (Grafik-) Formate, Überblick  BMP (Rastergrafik, Farbräume erwähnen)  JPEG(Grafik mit Kompression)  GIF (Grafik mit Kompression)  PNG (Grafik mit Kompression, inkl. Alphakanal)  TIFF (Grafik mit optionaler Kompression)  SVG(Vektorgrafik)  EPS (Druckerformat, Rastergrafik + Vektorgrafik)  PDF (Grafik + Text)  ZIP* (Komprimierung)  RAR (Archivierung)  MIDI (Musik)  MP3(Musik)  AVI(Video)  MOV (Video)  MPEG (Video) Warum gibt es dieses Format? Wie funktioniert dieses Format?

37 Digitales Koffer packen bzw. verlustfreie Komprimierung

38 Aufgabenstellung:  Sie wollen ihrem Freund eine Text-Botschaft übermitteln, können dazu aber nur Zahlen verwenden (entscheiden Sie selbst ob sie Dezimal- oder Binärzahlen benutzen).  Überlegen Sie sich eine Methode, wie die gegebene Botschaft möglichst genau und möglichst kompakt in Zahlen übersetzt werden kann. Dann erstellen Sie zwei Textdokumente: 1. Ein Dokument soll nur die Zahlenfolge enthalten 2. Im anderen Dokument formulieren Sie eine Anleitung, mit deren Hilfe ihr Freund die ursprüngliche Botschaft aus der Zahlenfolge rekonstruieren kann

39 Auswertung  Hat es geklappt?  Was war schwierig?  Welche Informationen wurden übermittelt? (genau?)  Wie viele Zahlen waren nötig? (kompakt?)  Welche anderen Botschaften könnten so verschickt werden?  Welche grundsätzliche Idee steckt hinter dieser Methode?

40 Arbeitsauftrag Ihr Ziel ist herauszufinden, wie die Huffman Codierung funktioniert und sie selbst anwenden zu können  Benutzen Sie dazu das Applet HuffmanApplet.jarHuffmanApplet.jar  Experimentieren Sie mit dem Applet (nur Huffman Code) und versuchen Sie, die Fragen im Arbeitsblatt AB Huffman Komprimierung.doc zu beantwortenAB Huffman Komprimierung.doc

41 Besprechung  Suchen Sie sich einen Partner und tauschen Sie ihre Ergebnisse aus  Notieren Sie alles, was ihnen beiden noch unklar ist  Können Sie die grundsätzliche Idee formulieren?

42 Konzepte Beispiele  Block-Codierung  Frequenz-Codierung  Präfixfreier Code  Telefonnummern  Morse-Code  Huffman Codierung  Arithmetische Codierung

43 Frequenzcodierung

44 Präfixfreie Telefonnummern WasTelefonnummer Allgemeiner Notruf112 Feuerwehrnotruf118 Polizeinotruf117 Sanitätsnotruf144 Rega (Rettungshelikopter)1414 Pannenhilfe140 Toxikologisches Institut (bei Vergiftungen)145 Auch normale Telefonnummern erfüllen die Fano-Bedingung, z.B. 0789218418 wenn das eine gültige Nummer ist 078921841 dann kann es diese 07892184182 oder diese nicht geben

45 Information Genau & Kompakt Codieren Komprimieren  Koffer (~ Format) so wählen, dass alles eingepackt werden kann, was man im Urlaub vielleicht brauchen könnte  Ziel: Der Koffer soll für alle Urlaube geeignet sein!  Effizient packen, so dass möglichst wenig Luft im Koffer bleibt  kann davon abhängen, was genau eingepackt wurde!  Ziel: Der Koffer für diesen Urlaub soll möglichst klein werden! Koffer packen (Komprimieren von Information)

46 Effizientes Packen von Buchstaben 1. Codieren von Buchstaben als binäre Codewörter  ASCII Code 2. Komprimieren der Bitsequenz  z.B. Huffman Codierung  kürzere Sequenz + neue Codewörter 3. Speichern oder Übermitteln 4. Dekomprimieren 5. Decodieren -> Darstellen

47 Komprimierung von Buchstaben originale Nachricht (z.B. ASCII) codierte Nachricht + Liste (z.B. Huffman) codierte Nachricht + Liste (z.B. Huffman) originale Nachricht (z.B. ASCII) Komprimieren, z.B. mit Huffman Codierung Dekomprimieren, z.B. mit Huffman Decodierung speichern /verschicken Welche Informationen braucht es hier?

48 DezimalHexBinärZeichen 96600110 0000` 97610110 0001a 98620110 0010b 99630110 0011c 100640110 0100d 101650110 0101e 102660110 f 103670110 0111g 104680110 1000h 105690110 1001i 1066A0110 1010j 1076B0110 1011k 1086C0110 1100l 1096D0110 1101m 1106E0110 1110n 1116F0110 1111o 112700111 0000p 113710111 0001q 114720111 0010r 115730111 0011s 116740111 0100t 117750111 0101u 118760111 0110v 119770111 w 120780111 1000x 121790111 1001y 1227A0111 1010z 1237B0111 1011{ 1247C0111 1100| 1257D0111 1101} 1267E0111 1110~ 1277F0111 1111DEL ASCII (American Standard Code for Information Interchange) Kleinbuchstaben:

49 Huffman Komprimierung

50 Huffman Decodierung  Die binäre Nachricht: 0100111101001110010100111110  Die Codewörter: e=110 d=111 o=00 p=010 s=011 u=100 c=101

51 Und was daran war jetzt präfixfrei ? o=00 p=010 s=011 u=100 c=101 e=110 d=111

52 Komprimierung allgemein originale Nachricht (z.B. ASCII) codierte Nachricht + Liste (z.B. Huffman) codierte Nachricht + Liste (z.B. Huffman) originale Nachricht (z.B. ASCII) Komprimieren, z.B. mit Huffman Codierung Dekomprimieren, z.B. mit Huffman Decodierung speichern /verschicken Welche Informationen braucht es hier?

53 Grundsätzliche Idee bei Huffman  Häufige Zeichen (Buchstaben) werden in kurze Codewörter übersetzt (Frequenzcodierung)  Im Binärsystem funktioniert das nur, wenn der entstehende Code (die Codewörter) präfixfrei ist!  Die Bäumchen-Taktik (eigentlich ein Algorithmus) produziert eine Codierung, die diese beiden Prinzipien optimal verbindet.  (allerdings ist der resultierende Komprimierungsgrad nur annähernd optimal, noch effizienter ist die Arithmetische Codierung)

54 Pseudocode ... ist eine sprachliche Mischung aus natürlicher Sprache, mathematischer Notation und einer höheren Programmier- sprache arrayMax(A, n) // Input: Ein Array A, der n Integer Werte enthält // Output: Das maximale Element in A currentMax = A[0] for i = 1 to n - 1 if currentMax < A[i] currentMax = A[i] end return currentMax

55 decodieren(nachricht_bin, codewortliste) // Input: die Bitsequenz nachricht_bin und // eine Liste, die binären Codeworten Zeichen zuordnet // Output: nachricht_txt; die decodierte Nachricht, eine Sequenz von Zeichen nachricht_txt = leer; länge = 1; while (nachricht_bin != leer) zeichen_bin = get_first_n_bits(nachricht_bin, länge); 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(länge); länge = 1; else länge ++; end return nachricht_txt;

56 Pseudocode für 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 binären Codeworten ASCII Zeichen zuordnet

57 Huffman Komprimierung 1. ASCII Nachricht in 8-er Blöcke aufteilen, zählen wie oft jeder Block vorkommt 2. Blöcke nach Häufigkeit ordnen 3. Mit Huffman Baum präfixfreie Codewortliste erstellen 4. ASCII Nachricht nach Huffman übersetzen, siehe Liste 5. Bitsequenz & Liste in File speichern, evtl. verschicken 6. Auch transportiert werden muss die Information, dass dieses File Huffman-codiert ist

58 Fragen zu Huffman & Komprimierung 1. Was ist die grundlegende Idee hinter Huffman Komprimierung? 2. Wann ist Huffman am effizientesten? 3. Wann lohnt sich Huffman sicher nicht? 4. Warum benutzt z.B. Word kein Huffman Komprimierung? 5. Was wären andere grundlegende Ideen zu Komprimierung von Daten? (Erklären Sie anhand eines Beispiels) 6. Was sind allgemeine Vorteile von Datenkomprimierung? 7. Was sind allgemeine Nachteile der Datenkomprimierung? originale Nachricht codierte Nachricht originale Nachricht

59 Enthropie

60 Konzepte Beispiele  (Informations) Entropie  Entropieschätzung  Huffman in.zip

61 Was ist eigentlich Information?  Was ist das kleinstmögliche Bisschen an Information? Sein oder nicht Sein, das ist hier die Frage.

62 Ein BIT ist:  eine Bezeichnung für eine Binärziffer (üblicherweise „0“ und „1“).  eine Maßeinheit für die Datenmenge bei digitaler Speicherung von Daten. Die Datenmenge entspricht in diesem Fall der verwendeten Anzahl von binären Variablen zur Abbildung der Information.  eine Maßeinheit für den Informationsgehalt (siehe Shannon). Dabei ist 1 Bit der Informationsgehalt, der in einer Auswahl aus zwei gleich wahrscheinlichen Möglichkeiten enthalten ist. There are 10 sorts of people: o those who unterstand binary and o those who do not.

63 1. 0101010101010101... 2. 1111111111111111... 3. 0110001101100101... 4. 0010111001100101... 5. 0000000011111111... 6. 0011001100110011... Ordnen Sie diese Bitsequenzen nach Informationsgehalt (aufsteigend)

64 1. 0101010101010101...  2. 2. 1111111111111111...  1. (= 1 Bit) 3. 0110001101100101...  4c 4. 0010111001100101...  4b (ASCII = ce) 5. 0000000011111111...  4a 6. 0011001100110011...  3.

65 Entropie ist  eine physikalische Zustandsgröße in der Thermodynamik  ein Maß für den mittleren Informationsgehalt oder auch Informationsdichte eines Zeichensystems  Warum sollte uns das interessieren?  Huffman Komprimierung ist das Paradebeispiel für eine Entropiecodierung

66 Entropie & 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 wahrscheinlicher? was trägt mehr Information?

67 Berechnen der Informationsdichte  H = Entropie  Z = endliches Alphabet von Zeichen  z = ein einzelnes Zeichen  p = Auftretenswahrscheinlichkeit (=Häufigkeit z/Gesamthäufigkeit) Für das deutsche Alphabet: Eine perfekte Komprimierung würde genau diesen Entropiewert erreichen

68 Wozu brauchen wir das? 1. ASCII Nachricht in 8-er Blöcke aufteilen, zählen wie oft jeder Block vorkommt 2. Blöcke nach Häufigkeit ordnen 3. Mit Huffman Baum präfixfreie Codewortliste erstellen 4. ASCII Nachricht nach Huffman übersetzen, siehe Liste 5. Bitsequenz & 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? (z.B. beim zippen)

69 Wozu brauchen wir das?  Entropie wird pro Zeichen berechnet - aber was ist ein Zeichen? 8er: 01100011 01100101 4er: 0110 0011 0110 0101 1. 0101010101010101... 2. 1111111111111111... 3. 0110001101100101... 4. 0010111001100101... 5. 0000000011111111... 6. 0011001100110011... Normierung für unterschiedliche Block-, bzw. Zeichenlängen noch allgemeiner: konditionelle Entropie

70 Huffman generalisiert 1. Binäre Nachricht durch Entropietests/Schätzung darauf analysieren, welche Bits ein Zeichen bilden sollten, so dass sich die niedrigste Entropie ergibt 2. Binäre Nachricht in Zeichen aufteilen, zählen wie oft jedes Zeichen vorkommt 3. Blöcke nach Häufigkeit ordnen 4. Mit Huffman Baum präfixfreie Codewortliste erstellen 5. Binäre Nachricht nach Huffman übersetzen, s. Liste 6. Bitsequenz & Liste in File speichern, evtl. verschicken 7. Auch transportiert werden muss die Information, dass dieses File Huffman-codiert ist

71 Entropiecodierung bedeutet  mit einer Entropieschätzung herausfinden, welche Abschnitte der originalen Bitsequenz man als Zeichen ansehen sollte  diese Zeichen dann so in präfixfreie Codewörter übersetzen, dass den häufigsten Zeichen die kürzesten Codewörter zugeordnet werden  ACHTUNG: trade-off der Listengrösse berücksichtigen!

72 Entropiecodierung ist  eine allgemeine Methode um zu bestimmen, wie viel Luft im Koffer ist, und den Koffer dann so umzupacken, dass möglicht 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

73 Optimalität der Huffman Codierung  ist die wohl am weitesten verbreitete Art der Entropiecodierung  wird oft als letzter Schritt auf beliebige Bitsequenzen angewandt  ist nur annähernd optimal. Bsp: völlig zufällige Sequenz mit drei mal mehr Nullen als Einsen  - (1/4*lg(1/4)+3/4*lg(3/4)) = 0.811278 Bit/Zeichen(=Bit)  weniger als ein Bit geht aber nicht, die beiden kürzest möglichen Codewörter haben jeweils ein Bit  Noch bessere Lösung: Arithmetische Codierung

74 Arithmetische Codierung  Die gesamte Nachricht in einer einzigen Zahl... ... ausserdem braucht es die Zeichen und ihre Frequenz... ... und einen schnellen Computer A = 0.6 B = 0.2 C = 0.1 D = 0.1 Zahl = 0.536  Nachricht = ACD  Die gesamte Nachricht in einer einzigen Zahl... ... ausserdem braucht es die Zeichen und ihre Frequenz... ... und einen schnellen Computer  Applet: lossless.jar

75 Lernziele - erreicht??  Sie verstehen, was Hamlet mit dem zersplitternden Weinglas zu tun hat, und wie beide mit der Huffman Kodierung zusammenhängen  Sie kennen die allgemeine Form der Huffman Kodierung Zusatz:  Sie können erklären  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

76 Hausaufgaben  Prüfziffern (jede(r) eine andere)  Möglichkeiten s. Wiki  Eine übersichtliche Seite zusammenstellen mit  Kurzbeschreibung: Berechnung dieser Prüfziffer  Beispiel  Versuch einer allgemeinen Definition von Prüfziffer

77 Ein bisschen Magie!

78 Fehlerkorrigierende Codes

79 Wie funktioniert der Trick? Eine Hinweis:

80 Wie funktioniert der Trick?  Eine zufällige binäre Matrix wird um eine Spalte und eine Zeile ergänzt  Dort wird jeweils das Paritätsbit eingetragen  alle Zeilen und Spalten sind gerade  Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile & Spalte Technisch ausgedrückt, für 5x5: Ein (25,16)-fehlerkorrigierender Code mit HD = 4 000 101 000 00 00 11 100 001 01 10

81 Wie funktioniert der Trick?  Eine zufällige binäre Matrix wird um eine Spalte und eine Zeile ergänzt  Dort wird jeweils das Paritätsbit eingetragen  alle Zeilen und Spalten sind gerade  Das geflippte Bit ist am Kreuzungspunkt der einzigen ungeraden Zeile & Spalte Technisch ausgedrückt, für 5x5: Ein (25,16)-fehlerkorrigierender Code mit HD = 4 000 101 010 00 00 11 100 001 01 10

82 Exkurs: Zusammenhang mit Prüfziffern?  Prüfziffern dienen der Fehlererkennung (wie Paritätsbits)

83 Wie funktionieren Prüfziffern? (allgemein)  Sender:  Empfänger berechnen 3 3 anhängen berechnen 3 3 vergleichen ungleiche Prüfziffern  es ist ein Fehler passiert

84 Wie funktionieren Prüfziffern? (allgemein)  Sender:  Empfänger berechnen 3 3 anhängen berechnen 3 3 vergleichen ungleiche Prüfziffern  es ist ein Fehler passiert

85 Prüfziffern Eigenschaften der Prüfzifferberechnung:  Menge der redundanten Informationen?  Wie viele Fehler werden erkannt?  Welche Fehler werden erkannt? Redundanz: 1 Dezimalstelle 10% der Zeichen haben dieselbe Prüfziffer aber: die Versagensquote ist niedriger, weil die häufigsten Fehler erkannt werden (z.B. Zahlendreher)

86 Konzepte Beispiele  Fehlererkennung  Prüfsumme  Paritätsbit  Fehlerkorrektur  Hamming-Distanz  Binärmagie  Hamming-Code  CIRC

87 Paritätsbits sind minimale Prüfziffern Mit mehreren, geschickt kombinierten Paritätsbit können Fehler nicht nur erkannt, sondern auch korrigiert werden: Redundanz: 1 Bit 50% der Zeichen haben dasselbe Prüfbit aber: der einfachste Fehler (ein geflipptes Bit) wird erkannt 1 11 0 0 00 11 (9,4)Code – 5 Bit redundant (geht das effizienter?) kann ein geflipptes Bit korrigieren kann zwei geflippte Bit erkennen (sicher? wie beweisen?)

88 (7,4)Hamming-Code: codieren  3 redundante Bits  1 Bit Korrektur  2 Bit Erkennung (?!) 1 1 0 2 0 3 1 4 ? 5 ? 6 ? 7 1 1 0 2 0 3 1 4 ? 5 ? 6 ? 7 DatenP-Bits

89 (7,4)Hamming-Code: codieren  3 redundante Bits  1 Bit Korrektur  2 Bit Erkennung (?!) 1 1 0 2 0 3 1 4 0 5 0 6 1 7 1 1 0 2 0 3 1 4 0 5 0 6 1 7 DatenP-Bits

90 (7,4)Hamming-Code: decodieren  3 redundante Bits  1 Bit Korrektur  2 Bit Erkennung (?!) 0 1 1 2 0 3 1 4 1 5 1 6 1 7 0 1 1 2 0 3 1 4 0 5 1 6 1 7 DatenP-Bits

91 (7,4)Hamming-Code: decodieren  3 redundante Bits  1 Bit Korrektur  2 Bit Erkennung (?!) 0 1 0 2 0 3 1 4 1 5 1 6 1 7 0 1 0 2 0 3 1 4 0 5 1 6 1 7 DatenP-Bits

92 Üben codieren decodieren 0 1 0 2 0 3 1 4567 1 1 1 2 0 3 1 4567 1 1 0 2 1 3 1 4567 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

93 Hamming-Distanz (HD) Definition Hamming-Distanz:  n Stellen Unterschied zwischen zwei Zeichen (hier Bit) Hamming-Distanz als Eigenschaft eines Codes:  Minimale HD zwischen zwei (gültigen) Codewörtern 1 1 1 2 0 3 1 4567 1 1 1 2 1 3 1 4567 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 7 HD = 1 HD = 3

94 Der (7,4)Hamming Code ... verteilt die 16 (2 4 Bit ) ursprüng- lichen Codewörter so auf die 7 Bit, dass eine HD = 3 garantiert ist  1 Bitflip kann korrigiert werden  2 Bitflips können erkannt werden Allgemein, in Anhängigkeit von der HD des Codes  Korrektur:?Bitflips  Erkennung:?Bitflips

95 Der (7,4)Hamming Code ... verteilt die 16 (2 4 Bit ) ursprüng- lichen Codewörter so auf die 7 Bit, dass eine HD = 3 garantiert ist  1 Bitflip kann korrigiert werden  2 Bitflips können erkannt werden Allgemein, in Anhängigkeit von der HD des Codes  Korrektur:HD/2 - 1Bitflips  Erkennung:HD - 1Bitflips

96 Erkennen & Korrigieren geht nicht gleichzeitig. Warum? Der erweiterte (8,4)Hamming-Code mit HD = 4 kann den einzelnen (korrigierbaren) Flip vom doppelten (nicht korrigierbaren) unterscheiden 100 % Redundanz für 25% Korrekturleistung Lohnt sich das? (und ist das richtig gerechnet?)

97 Lohnt sich das? P für ein Bit, geflippt zu werden Anzahl Bits Eines von 4 Bit ist geflippt P für genau einen Flip P für keinen Flip P für einen oder keinen Flip P für mehr als einen Flip P für einen oder mehr Flips http://stattrek.com/online-calculator/binomial.aspx  Resultat für 1% Flip-Wahrscheinlichkeit pro Bit:  In ~96% der 4-Bit Sequenzen gibt es sowieso keinen Fehler  In ~3.9% gibt es einen Fehler  kann korrigiert werden  In ~0.06% gibt es mehr als einen Fehler  keine Korrektur möglich

98 Lohnt sich das? P für ein Bit, geflippt zu werden Anzahl Bits Eines von 4 Bit ist geflippt P für genau einen Flip P für keinen Flip P für einen oder keinen Flip P für mehr als einen Flip P für einen oder mehr Flips http://stattrek.com/online-calculator/binomial.aspx  Resultat für 0.01% Flip-Wahrscheinlichkeit pro Bit:  In ~99.96% der 4-Bit Sequenzen gibt es sowieso keinen Fehler  In ~0.039% gibt es einen Fehler  kann korrigiert werden  In ~0.00000006% gibt es mehr als einen Fehler  keine Korrektur

99 Wie viel Redundanz lohnt sich?  Antwort: Es kommt darauf an... Parameterkombinationen bei Hamming-Codes (HD = 3) nkN = n + k Datenbits (Datenwort) Paritybits (Kontrollstellen) Gesamtlänge des Codewortes 123 437 11415 26531 57663 1207127 2478255

100 Reale Anwendungen  reine Hamming-Codes selten  in manchen WLAN-Standards  zur Korrektur von Speicheradressen  Noch etwas komplizierter – obwohl basierend auf denselben Grundprinzipien – ist beispielsweise die Fehlerkorrektur auf CDs oder DVDs  Cross-Interleaved Reed-Solomon Code (CIRC)  http://www.youtube.com/watch?v=sYO6vm9PTsI (ab 3:10) http://www.youtube.com/watch?v=sYO6vm9PTsI  http://www.theseus.fi/bitstream/handle/10024/32913/Reed- Solomon%20Encoding%20and%20Decoding.pdf?sequence=1 http://www.theseus.fi/bitstream/handle/10024/32913/Reed- Solomon%20Encoding%20and%20Decoding.pdf?sequence=1  http://cwww.ee.nctu.edu.tw/course/channel_coding/FEC_CD.pdf http://cwww.ee.nctu.edu.tw/course/channel_coding/FEC_CD.pdf

101 Cross-Interleaved Reed-Solomon Code

102 Performance of CIRC (~265,192)  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 (2.5 mm track length).  Max. interpolatable burst length in the worst case is about 12,3000 data bits (7.7 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.

103 Formate, Codes & Algorithmen Definitionen und Zusammenhänge

104 Komprimierung allgemein originale Nachricht (Bitsequenz) codierte Nachricht + Liste (Bitsequenz) codierte Nachricht + Liste (Bitsequenz) originale Nachricht (Bitsequenz) Komprimieren, z.B. mit Huffman Codierung Dekomprimieren, z.B. mit Huffman Decodierung speichern /verschicken

105 Codieren Welche Informationen braucht es hier? Nicht-digitale Information Digitale Information Nicht-digitale Information Digitale Information Komprimieren Komprimierte digitale Information Entkomprimieren Digitalisieren Entdigitalisieren?! Darstellen Wie geht das? Beispiel :„Fisch ers Fritz fischt frische...“

106 Und wie passt das jetzt alles zusammen? Information Codierung Format

107 Definition Code:

108 Definition von Code, lang  Im Allgemeinen ist ein Code eine Vereinbarung über einen Satz (eine Menge) von Symbolen (Bedeutungsträgern, oder Verweisen) zum Zweck des Informationsaustauschs. Information existiert nicht in „reiner“ Form; sie ist immer in irgendeiner Weise formuliert.  Ein Code ist – allgemein ausgedrückt – eine Formulierung von Information. Das setzt folgende Elemente voraus: 1. mindestens eine informationsformulierende Instanz (Aufzeichner/Sender) 2. mindestens eine informationsempfangende Instanz (Lesender/Empfänger) – kann unter Umständen auch identisch mit (1) sein 3. ein zu übermittelnder, abstrakter Inhalt, die Information 4. eine Vereinbarung zum Zweck der Informationsformulierung und gegebenenfalls Informationsübermittlung. Diese enthält einen Satz von Bedeutungsträgern oder Symbolen, der beiden Instanzen (1) und (2) bekannt ist, und gegebenenfalls Regeln zur Verwendung der Symbole

109 Codieren allgemein Nicht-digitale Information Digitale Information Nicht-digitale Information Digitale Information Komprimieren Komprimierte digitale Information Entkomprimieren Digitalisieren Entdigitalisieren?! Darstellen

110 Codieren allgemein Nicht-digitale Information Digitale Information Nicht-digitale Information Digitale Information Verschlüsseln Verschlüsselte digitale Information Entschlüsseln Digitalisieren Entdigitalisieren?! Darstellen

111 Codieren allgemein Nicht-digitale Information Digitale Information Nicht-digitale Information Digitale Information Verschlüsseln Verschlüsselte Information Entschlüsseln Digitalisieren Entdigitalisieren?! Darstellen Komprimieren Kompr. Information Entkomprimieren Format

112 Definition von Code, kurz Beispiele für Codes:  Ein Code ist eine Anleitung, um Zeichen eines Zeichensystems in die eines anderen zu übertragen.  Ein Code definiert eine Umformulierung von Information  Morse Code  ASCII Code  Huffman Codierung  Hamming Code  Binärcode  Quellcode  Genetischer Code  Neuronaler Code  Schrift  Sprache ...

113 Wozu Information umformulieren?  Damit ein spezieller Empfänger sie verstehen kann, z.B.  Übersetzung in andere Sprache, Digitalisieren, Drucken...  Um bestimmte Übertragungswege oder Speichermedien zu nutzen, z.B.  Morsen, Telefonieren, Bücher, Fotos, E-Mail...  Um Platz zu sparen, z.B.  DNA, Komprimierung, Datenübertragung...  Um Fehler bei der Übertragung zu vermeiden, z.B.  DNA  RNA, Hamming Code...  Um Inhalte vor Unbefugten zu verstecken, z.B.  Geheimsprachen, Verschlüsselung...

114 Computer machen eigentlich nichts anderes als  Information mithilfe von  Codes von einem  Format in das andere umzuwandeln damit diese Information gespeichert, transportiert, verschlüsselt, dargestellt, extrahiert, verglichen, zusammengeführt oder sonst wie verarbeitet werden kann I NFORMATIK = Automatische Informationsverarbeitung Achtung! Gerade haben wir uns Codes OHNE I NFORMATIONSVERLUST angeschaut. Es kann aber auch sein, dass „unwichtige“ Information verloren geht, z.B. weil man den Unterschied sowieso kaum bemerkt (.jpg) oder weil man nur an bestimmten Aspekten der Daten interessiert ist (der grösste Wert, die Richtigkeit einer Antwort, etc.)


Herunterladen ppt "Algorithmik Formate, Codes & Algorithmen. (Datei-) Formate."

Ähnliche Präsentationen


Google-Anzeigen