1 / 89

Algorithmik

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

dacia
Download Presentation

Algorithmik

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 1 oder 0 Sein oder nicht Sein trueoder false Information existiert nicht in reiner Form eine Formulierung von Information kann für vieles stehen (repräsentieren)

  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 • die Anordnung (wie teilt man die Sequenz in Zeichen auf?) • 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 oder: ein universeller digitale Koffer für Schach Vorschläge? Wie viele Bits brauchen Sie?

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

  10. Beispiel.rtf öffnen mit Hex-Editor, z.B. http://www.onlinehexeditor.com/ { \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 }

  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: { <header> <document>} • Der header beinhalten Kontrollwörter, die mit Backslashanfangen 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 Layoutinformationdurch standardisierte Kontrollwörter im header • Das Layout für Textteile geschieht durch Auszeichnung des Dokuments mit Kontrollwörtern im Text (wie HTML)

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

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

  16. Datei: Raetsel öffnen mit Hex-Editor, z.B. http://www.onlinehexeditor.com/ <svgversion="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"> <defs> </defs> <rect fill="#FF0000" stroke="none" x="0" y="0" width="400" height="400"/> <polygon fill="#FFFFFF" stroke="#FFFFFF" points="350,250 50,250 50,150 350,150"/> <polygon fill="#FFFFFF" stroke="#FFFFFF" points="250,350 150,350 150,50 250,50"/> </svg>

  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. 26 Kb

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

  22. 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

  23. 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

  24. 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 werden • Verschieden Algorithmen führen zu leicht unterschiedlichen Ergebnissen • Bei starken Manipulationen verhilft die Farbtiefe zu besseren Ergebnissen

  25. Die üblichsten Grafikformate (.jpg & .gif) • Komprimieren die Information reiner Rastergrafiken • Nehmen ggf. Informationsverlust in Kauf (meist variabel) Ansätze zum (verlustbehafteten) Komprimieren: • mehrere Pixel zusammenfassen • 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

  26. JPG & GIF • Pixel zusammenfassen • Farben repräsentieren • Besonderheiten • Anwendungsgebiet

  27. JPG in Bildern

  28. GIF in Bildern

  29. Probleme & Spezialitäten

  30. 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?

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

  32. (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?

  33. Digitales Koffer packen bzw. verlustfreie Komprimierung

  34. 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 genauund möglichst kompaktin Zahlen übersetzt werden kann. Dann erstellen Sie zwei Textdokumente: • Ein Dokument soll nur die Zahlenfolge enthalten • Im anderen Dokument formulieren Sie eine Anleitung, mit deren Hilfe ihr Freund die ursprüngliche Botschaft aus der Zahlenfolge rekonstruieren kann

  35. 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?

  36. Information Genau & Kompakt Codieren Komprimieren Koffer packen (Komprimieren von Information) • 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!

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

  38. Komprimierung von Buchstaben Komprimieren, z.B. mit Huffman Codierung Dekomprimieren, z.B. mit Huffman Decodierung Welche Informationen braucht es hier? speichern /verschicken

  39. ASCII (American Standard Code for Information Interchange) Kleinbuchstaben:

  40. Arbeitsauftrag Ihr Ziel ist herauszufinden, wie die Huffman Codierung funktioniert und sie selbst anwenden zu können • Benutzen Sie dazu das Applet: WindowsHuffmanShannonFano.jar • Experimentieren Sie mit dem Applet (nur Huffman Code) und versuchen Sie, die Fragen im Arbeitsblatt zu beantworten

  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 Auch normale Telefonnummern erfüllen die Fano-Bedingung, z.B. 0789218418wenn das eine gültige Nummer ist 078921841dann kann es diese 07892184182oder diese nicht geben

  45. 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)

  46. Huffman Komprimierung

More Related