Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

2.1 Kodierung von Zeichen 2.2 Kodierung von Zahlen

Ähnliche Präsentationen


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

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

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 RW-Systemarchitektur Kap. 2

3 Motivation Zeichen verarbeiten (Textverarbeitung), mit Zahlen rechnen,
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! RW-Systemarchitektur Kap. 2

4 2.1 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) RW-Systemarchitektur Kap. 2

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

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

7 7-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). RW-Systemarchitektur Kap. 2

8 7-bit-ASCII: Code-Tabelle
erste 3 Bits 1 1 1 1 1 1 1 0000 nul dle @ P ` p 0001 soh dc1 ! 1 A Q a q 0010 sfx dc2 " 2 B R b r 0011 etx dc3 # 3 C S c s Problem: Umlaute, Sonderzeichen verschiedener Nationalitäten  Erweiterung auf 8 Bit (oder 16 Bit im Fall von Unicode) 0100 eot dc4 $ 4 D T d t 0101 enq nak % 5 E U e u 0110 ack syn & 6 F V f v letzte 4 Bits 0111 bel etb ' 7 G W g w 1000 bs can ( 8 H X h x 1001 ht em ) 9 I Y i y 1010 lf sub * : J Z j z 1011 vt esc + ; K [ k { 1100 ff fs , < L \ l | 1101 cr qs - = M ] m } 1110 so rs . > N ^ n * 1111 si us / ? O _ o del Steuerzeichen Schriftzeichen RW-Systemarchitektur Kap. 2

9 Bedeutung von ASCII-Steuerzeichen
Abk. Funktion Funktion (Bedeutung des Zeichens) NUL Null Nichtiges (ungültiges) Zeichen SOH Start of heading Beginn des Kopfes (Titels) STX Start of text Textanfang ETX End of text Textende EOT End of transmission Ende der Übertragung ENQ Enquiry Anfrage ACK Acknowledgement Empfangsbestätigung BEL Audible signal Akustisches Signal BS Backspace Rücksetzen HT Horizontal tabulation Horizontale Einstellung (Tabulator) LF Line feed Zeilenvorschub VT Vertical tabulation Vertikale Einstellung (Tabulator) FF Form feed Formularvorschub CR Carriage return Schreibkopfrücklauf SO Shift out Umschaltung aus (Kleinschreibung) SI Shift in Umschaltung ein (Großschreibung) DLE Data link escape Umschaltung von Text auf Steuerzeichen DC1-3 Device control Einheitensteuerung DC4 Device stop Einheitenhalt NAK Negative acknowledgement Negative Empfangsbestätigung SYN Synchronous idle Synchronisierzeichen (Leerlauf) ETB End of transmission block Ende eines Übertragungsblockes CAN Cancel Aufhebung EM End of medium Ende für ein Medium (Gerät) SS Start of special sequence Beginn einer speziellen Folge ESC Escape Auswahl, Trennung, Umschaltung FS File separator Dateitrennzeichen GS Group separator Gruppentrennzeichen RS Record separator Satztrennzeichen US Unit separator Trennzeichen für eine Informationseinheit SP Space Zwischenraum DEL Delete/Idle Löschen/ Leerlauf 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). RW-Systemarchitektur Kap. 2

10 Häufigkeitsabhängige Codes
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 Häufiges Zeichen ® kurzer Code Seltenes Zeichen ® langer Code Voraussetzungen Häufigkeitsverteilung ist bekannt ® statische Kompression Häufigkeitsverteilung nicht bekannt ® dynamische Kompression RW-Systemarchitektur Kap. 2

11 Häufigkeitsabhängige Codes: Huffman
bekanntester häufigkeitsabhängiger Code Beispiel 43 57 32 17 13 10 9 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 23 100 Markiere die linken Kanten mit 0 und die rechten Kanten mit 1, fertig ist der Huffman-Code! RW-Systemarchitektur Kap. 2

12 Huffman-Code Erzeugte Codierung 1 1 1 1 1 1 1 1 1 Zeichen a b c d e f
j Häufigkeit [%] 20 25 15 8 7 6 5 5 5 4 43 57 32 17 13 10 9 1 1 1 23 1 1 1 1 100 1 1 Erzeugte Codierung RW-Systemarchitektur Kap. 2

13 Huffman-Code Dekodierung:
Zeichen a b c d e f g h i j Häufigkeit [%] 20 25 15 8 7 6 5 5 5 4 43 57 32 17 13 10 9 1 1 1 23 1 1 1 1 100 1 1 Dekodierung: Lesen des Bitstromes (und gleichzeitiges Durchlaufen des binären Baumes) bis Code für das Symbol erkannt Erkanntes Symbol ausgeben und weiter mit (1) RW-Systemarchitektur Kap. 2

14 Präfixcodes Definition: Sei A = {a1, …, am}.
a1 … ap Î A* heißt Präfix von b1 … bl Î A*, falls p  l und ai = bi  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(ai) Präfix von c(aj). 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). RW-Systemarchitektur Kap. 2

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

16 Motivation: Übertragungsfehler
Ein Übertragungsfehler (Abspeicherungsfehler) eines Wortes aus {0, 1}* liegt vor, wenn die empfangene Bitfolge verschieden von der gesendeten Bitfolge ist. Übertragungsfehler = Kippen von Bitstellen (0 ® 1, 1 ® 0) Ü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: dist( , ) = 2 dist( , ) = 0 Ein Übertragungsfehler heißt einfach, wenn dist(v,w)=1 gilt. RW-Systemarchitektur Kap. 2


Herunterladen ppt "2.1 Kodierung von Zeichen 2.2 Kodierung von Zahlen"

Ähnliche Präsentationen


Google-Anzeigen