Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Kapitel 2 Kodierung 2.1 Kodierung von Zeichen 2.2 Kodierung von Zahlen.

Ähnliche Präsentationen


Präsentation zum Thema: "Kapitel 2 Kodierung 2.1 Kodierung von Zeichen 2.2 Kodierung von Zahlen."—  Präsentation transkript:

1 Kapitel 2 Kodierung 2.1 Kodierung von Zeichen 2.2 Kodierung von Zahlen

2 RW-SystemarchitekturKap. 2 2 Motivation Ein Rechner speichert, verarbeitet und produziert Informationen. Alle Ergebnisse müssen als Funktion der Anfangswerte exakt reproduzierbar sein. èInformationsspeicherung und Verarbeitung müssen exakt sein. Probleme: Noise, Crosstalk, Abschwächung èEs gibt keine exakte Datenübertragung oder Datenspeicherung èZiel: Quantisierung der Informationsspeicherung mit Signal groß gegenüber maximaler Störung Binär-Codierung (nur zwei Zustände) ist die einfachste (und sicherste) Signal-Quantisierung. BIT (0, 1) als grundlegende Informationseinheit

3 RW-SystemarchitekturKap. 2 3 Motivation Ein Rechner kann traditionell Zeichen verarbeiten (Textverarbeitung), mit Zahlen rechnen, Bilder, Audio- und Videoinformationen verarbeiten und darstellen … Ein Algorithmus kann zwar prinzipiell mit abstrakten Objekten verschiedener Art operieren, aber diese müssen im Rechner letztendlich als Folgen von Bits repräsentiert werden. Kodierung!

4 RW-SystemarchitekturKap Kodierung von Zeichen Wie werden im Rechner Zeichen dargestellt ? Längenoptimale Kodierungen von Zeichen: Häufigkeitscodes (Bsp.: Huffman-Code) fehlererkennende und fehlerkorrigierende Codes (Bsp.: Parity-Check, Hamming-Code)

5 RW-SystemarchitekturKap. 2 5 Alphabete und Wörter Definition: Eine nichtleere Menge A = {a 1,..., a m } heißt (endliches) Alphabet der Größe m. a 1,..., a m heißen Zeichen des Alphabets. A* = {w| w=b 1... b n mit n, i mit 1 i n : b i A} ist die Menge aller Wörter über dem Alphabet A. |b 1... b n | := n heißt Länge des Wortes b... b n. Das Wort der Länge 0 wird mit bezeichnet. Beispiel: Sei A = {a, b, c, d}. Dann ist bcada ein Wort der Länge 5 über A.

6 RW-SystemarchitekturKap. 2 6 Code Sei A={a 1,...,a m } ein endliches Alphabet der Größe m. Code Eine Abbildung c : A {0,1}* oder c : A {0,1} n heißt Code, falls c injektiv ist. Codewörter Die Menge c (A) := { w {0,1}* | a A : c (a)=w } heißt Menge der Codewörter. Code fester Länge Ein Code c : A {0,1} n heißt Code fester Länge. Übertragungsfehler Für einen Code c : A {0,1} n fester Länge gilt: n log 2 m. Ist n log 2 m +r mit r so können die r zusätzlichen Bits zum Test auf Übertragungsfehler verwendet werden (siehe später).

7 RW-SystemarchitekturKap Bit-ASCII American Standard Code for Information Interchange ASCII ist ein Code fester Länge zur Kodierung von Zeichen in einem Rechner. Die Codelänge beträgt 7. Es gibt auch andere vergleichbare Codes, wie z.B. EBDIC (8 Bit) oder UniCode (16 Bit).

8 RW-SystemarchitekturKap bit-ASCII: Code-Tabelle Problem: Umlaute, Sonderzeichen verschiedener Nationalitäten Erweiterung auf 8 Bit (oder 16 Bit im Fall von Unicode) sohdc1 ! 1AQaq 0010 sfxdc2 " 2BRbr 0011 etxdc3#3CScs 0100 eotdc4$4DTdt 0101 enqnak%5EUeu 0110 acksyn& 6 FVfv 0111 beletb'7GWgw 1000 bscan(8HXhx 1001 htem)9IYiy 1010 lfsub*:JZjz 1011 vtesc+;K[k{ 1100 fffs,N^n* 1111 sius/?O_odel erste 3 Bits letzte 4 Bits SchriftzeichenSteuerzeichen

9 RW-SystemarchitekturKap. 2 9 Bis zur Einführung des Laserdruckers waren Drucker zeilenorientiert. Die ASCII-Steuerzeichen wurden benutzt, um Drucker zu steuern. Bsp.: CR: Wagenrücklauf LF: Zeilenvorschub CR und LF sind bis heute die Zeilentrennzeichen in Textdateien (aber nicht einheitlich). Bedeutung von ASCII-Steuerzeichen

10 RW-SystemarchitekturKap Häufigkeitsabhängige Codes Ziel Ziel Reduktion der Länge einer Nachricht durch Wahl verschieden langer Codewörter für die verschiedenen Zeichen eines Alphabets (also kein Code fester Länge!) Idee Idee Häufiges Zeichen kurzer Code Seltenes Zeichen langer Code Voraussetzungen statische Kompression dynamische Kompression Voraussetzungen Häufigkeitsverteilung ist bekannt statische Kompression Häufigkeitsverteilung nicht bekannt dynamische Kompression

11 RW-SystemarchitekturKap Häufigkeitsabhängige Codes: Huffman bekanntester häufigkeitsabhängiger CodeBeispiel Baue binären Baum, indem die Knoten mit den beiden kleinsten Häufigkeiten unter einen neuen Knoten mit der Summe der Häufigkeiten gehängt werden Markiere die linken Kanten mit 0 und die rechten Kanten mit 1, fertig ist der Huffman-Code!

12 RW-SystemarchitekturKap. 2 Erzeugte Codierung 12 Huffman-Code Zeichen abcdefghij Häufigkeit [%]

13 RW-SystemarchitekturKap Huffman-Code Zeichen abcdefghij Häufigkeit [%] Dekodierung: (1)Lesen des Bitstromes (und gleichzeitiges Durchlaufen des binären Baumes) bis Code für das Symbol erkannt (2)Erkanntes Symbol ausgeben und weiter mit (1)

14 RW-SystemarchitekturKap Präfixcodes Definition: Sei A = {a 1, …, a m }. a 1 … a p A* heißt Präfix von b 1 … b l A*, falls p l und a i = b i 1 i p. Ein Code c : A {0, 1}* heißt präfixfreier Code, falls es kein Paar i, j {1, …, m} gibt, so dass c(a i ) Präfix von c(a j ). Bemerkung: Der Huffman-Code ist ein Präfixcode. Bei Präfixcodes können Wörter über {0, 1} eindeutig dekodiert werden. (Sie entsprechen Binärbäumen mit Codewörtern an den Blättern.) Huffman-Code ist ein bzgl. mittlerer Codelänge optimaler Präfixcode (unter Voraussetzung einer bekannten Häufigkeitsverteilung).

15 RW-SystemarchitekturKap Überblick: Fehlererkennende und fehlerkorrigierende Codes Motivation Fehlererkennende Codes Allgemeine Resultate Bsp. für 1-fehlererkennenden Code: Parity-Code Fehlerkorrigierende Codes Allgemeine Resultate Bsp. für 1-fehlerkorrigierenden Code: Hamming-Code

16 RW-SystemarchitekturKap Motivation: Übertragungsfehler Übertragungsfehler Ein Übertragungsfehler (Abspeicherungsfehler) eines Wortes aus {0, 1}* liegt vor, wenn die empfangene Bitfolge verschieden von der gesendeten Bitfolge ist. Kippen von Bitstellen Übertragungsfehler = Kippen von Bitstellen (0 1, 1 0) Distanz zweier gleich langer Bitfolgen Übertragungsfehler erhöhen die (Hamming-)Distanz dist(v,w) zwischen der gesendeten Bitfolge v und der empfangenen Bitfolge w, wobei man unter der Distanz zweier gleich langer Bitfolgen die Anzahl der Stellen versteht, an denen sich die beiden Bitfolgen unterscheiden. Beispiel: Beispiel: dist( , ) = 2 dist( , ) = 0 einfach Ein Übertragungsfehler heißt einfach, wenn dist(v,w)=1 gilt.


Herunterladen ppt "Kapitel 2 Kodierung 2.1 Kodierung von Zeichen 2.2 Kodierung von Zahlen."

Ähnliche Präsentationen


Google-Anzeigen