Informationsdarstellung

Aus IV1
Hier geht es um Inforamtionsdarstellung.



Bits & Bytes

Wer immer sich über die Leistungsfähigkeit von Produkten aus dem Computerbereich informiert, wird dabei wahrscheinlich auf einige „magische” Werte (z.B. 128, 512, 4096, 32768, 65536, oder auch die um eins kleineren Zahlen, z.B. 32767) treffen. Als „Geheim¬nis” hinter all diesen Zahlen entpuppt sich die Zahl Zwei (128=27 bit, 512=29, 4096=212, 32768=215, 65536=216).

Diese zentrale Rolle der Zahl Zwei ist kein Zufall: Informationen, die mit zwei Zuständen (nämlich Strom und kein Strom) dargestellt sind, lassen sich mit Hilfe elektronischer Schaltelemente (in der Anfangszeit der Computer Relais und Röhren, heute ausschließlich Transistoren) zu neuen Ergebnissen verknüpfen und können z.B. mit Hilfe magnetisierbarer Materialien (codiert z.B. durch die Magnetisierungsrichtung) über längere Zeit aufbewahrt werden.

Diese zwei Zustände (z.B. auf elektrischen Leitungen Strom / kein Strom, ...) lassen sich verschieden interpretieren: etwa als die logischen Werte „Falsch” und „Wahr”, oder als die beiden Ziffern 0 und 1 (manchmal auch – zur Unterscheidung von den zehn Dezimalziffern – durch die beiden Buchstaben „O” und „L” repräsentiert).

Die letztere Interpretation gab einer Einheit, die genau zwei verschiedene Zustände haben kann, übrigens ihren Namen: Streicht man aus dem englischen ”binary digit” (zu deutsch: binäre Ziffer, Ziffer zur Basis Zwei) die mittleren Buchstaben heraus, ergibt sich – das Bit.

Lassen sich mit einem Bit zwei verschiedene Zustände darstellen, so können mit zwei Bit schon 4 (=22) verschiedene Zustände nachgebildet werden (nämlich 00, 01, 10 und 11), mit drei Bits 8 (=23), ... Allgemein: Mit n Bits lassen sich 2n verschiedene Zustände darstellen.

Fasst man acht Bit zusammen (damit können 28=256 verschiedene Zustände dargestellt werden; in der Regel genug, um alle Zeichen einer Sprache darstellen zu können), so erhält man als nächst größere Einheit, ein Byte. Selbstverständlich gibt es von diesen Bytes (wie auch den Bits) auch die gängigen Vielfachen, wie Kilo, Mega, Giga, ... Bei der Umrechnung spielt jedoch – im Gegensatz zum sonst üblichen Gebrauch – nicht die Zehn, sondern wiederum die Zwei die Hauptrolle: 1 kB (Kilobyte) = 1024 Byte (1024=210), 1 MB (Megabyte) = 1024 kB = 1.048.576 Byte, ...

Die letzte Einheit, die noch zu erwähnen wäre, ist das Wort. Dieses ist – abhängig vom verwendeten Computertyp – 2, 4 oder 8 Byte (16-Bit-, 32-Bit- oder 64-Bit-Prozessoren) groß und stellt üblicherweise die Menge an Information dar, die dieser Computer mit einem Arbeitsschritt verarbeiten kann.

Darstellung von Zahlen

Binärdarstellung

Die Binärdarstellung von Zahlen schöpft hingegen alle möglichen Bitkombinationen aus: So lassen sich z.B. in 16 Bit alle ganzen Zahlen von 0 bis 65535 bzw. (wenn ein Vorzeichen verwendet wird) von -32768 bis +32767 darstellen. Bei 32 Bit wären das die ganzen Zahlen von 0 bis 4294967295 bzw. -2147483648 bis 2147483647.

Gleitkommadarstellung

Sollen Zahlen mit Nachkommastellen (oder auch sehr große bzw. kleine Zahlen) dargestellt werden, bedient man sich eines ähnlichen „Tricks” wie die „wissenschaftliche Notation” von Zahlen (z.B. -2,6410·108; bzw. auf dem Taschenrechner-Display: -2.64E+8): Die Zahl wird in eine Mantisse (in diesem Beispiel -2,64) sowie einen Exponenten (im Beispiel: +8) zu einer vorher festgelegten Basis (im Beispiel: 10) zerlegt. Für die Darstellung der Mantisse (die soweit „normalisiert” wird, dass sich das Dezimalkomma an einer bestimmten Stelle befindet, sodass eine „ganzzahlige” Darstellung möglich ist) und des Exponenten werden dann jeweils eine festgelegte Anzahl von Bits verwendet, wodurch einerseits der Wertebereich, andererseits auch die Genauigkeit der darstellbaren Zahlen festgelegt ist (diese Darstellung wird als Gleitkommadarstellung von Zahlen bezeichnet). Die im PC-Bereich gängigen Gleitkommaformate mitsamt ihren wichtigsten Eigenschaften sind in nachstehender Tabelle dargestellt:


Format "short" "long" "extended"
Größe [Bits] 32 64 80
Größe [Bytes] 4 8 10
kleinster darstellbarer Wert ≈1,175·10-38 ≈2,225·10-308 ≈3,362·10-4932
größter darstellbarer Wert ≈3,403·10+38 ≈1,798·10+308 ≈1,190·10+4932
Genauigkeit ≈7 ≈16 ≈19


Besondere Aufmerksamkeit verdient die Tabellenzeile "Genauigkeit": Diese besagt nicht, dass alle Zahlen und Rechenergebnisse exakt darstellbar sind, sofern sie sich auf die angegebenen Dezimalstellen beschränken, sondern lediglich, dass sich das Rechenergebnis im Computer vom tatsächlichen Rechenergebnis maximal in der Größenordnung der angegebenen Dezimalstelle unterscheiden kann. Es kommt also zu Ungenauigkeiten aufgrund der Zahlendarstellung, die sich leider durch weitere Rechenoperationen aufschaukeln und das Gesamtergebnis z.T. signifikant verfälschen können (besonders anfällig hierfür sind Vergleichsoperationen und Rundungsfunktionen wie z.B. GANZZAHL() in Microsoft EXCEL).

Darstellung von Texten

In einem Computer sollen allerdings nicht nur Zahlen, sondern auch Texte dargestellt werden können. Basis der Textdarstellung (ohne Schriftarten, Schriftgrößen, oder sonstige Formatelemente) ist ein Zeichen, das in der Regel in einem Byte dargestellt wird. Die verschiedenen Bitkombinationen eines Bytes werden dabei gemäß einer Codetabelle den darzustellenden Zeichen zugeordnet.

ASCII-Code

Alle in den gängigen Personalcomputern verwendeten Zeichensätze basieren auf dem sog. ASCII-Code (ASCII ist die Abkürzung für „American Standard Code for Information Interchange”), der von ANSI (dem „American National Standards Institute”, dem Normungsgremium der USA) genormt wurde. Der ASCII-Code benutzt von den 8 Bit eines Bytes nur 7 Bit (das 8. Bit wird in der Regel auf 0 belassen) und belegt die Zeichen gemäß nachstehender Tabelle:


000 001 010 011 100 101 110 111
...0000 NUL DLE SPC 0 @ P ` p
...0001 SOH DC1 ! 1 A Q a q
...0010 STX DC2 " 2 B R b r
...0011 ETX DC3 # 3 C S c s
...0100 EOT DC4 $ 4 D T d t
...0101 ENQ NAK % 5 E U e u
...0110 ACK SYN & 6 F V f v
...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 FT FS , < L \ I I
...1101 CR GS - = M ] m }
...1110 SO RS . > N ^ n ~
...1111 SI US / ? 0 _ 0 DEL


Die Zeichen des ASCII-Zeichensatzes gliedern sich in zwei Kategorien:

Darstellbare Zeichen

Darstellbare Zeichen werden zur Darstellung von (einzelnen) Textzeichen verwendet und werden in der obigen Tabelle durch ihren Wert repräsentiert. Dazu zählen die Groß- und Kleinbuchstaben („A”...„Z”, „a”...„z”), die Ziffern („0”...„9”), die Inter¬punktionszeichen („.”, „:”, „!”, „?”, ...), einige Sonderzeichen („$”, „@”, „%”, ...) sowie das Leerzeichen (in der Tabelle als SPC für engl. „space” bezeichnet).

Nicht im ASCII-Zeichensatz enthalten sind die (europäischen) nationalen Sonderzeichen, wie die deutschen Umlaute („Ä”, „Ö”, „Ü”, „ä”, „ö”, „ü”) oder das scharfe S („ß”). In einem rein amerikanischen Zeichensatz mussten sie nicht vorhanden sein; problematisch wurde die Situation jedoch, als der Zeichen¬satz „internationalisiert” wurde, indem Computer und Programme, die den betreffenden Zeichensatz verwendeten, aus den USA exportiert bzw. außerhalb Amerikas entwickelt und erzeugt wurden.

Der Lösungsansatz, der in modernen Personalcomputern verwendet wird, ist im Prinzip überall derselbe: die verbleibenden 128 Bitkombinationen eines Bytes werden verwendet, um zusätzliche Zeichen dar¬zustellen. Leider ist die Belegung dieser 128 Zeichen unterschiedlich ausgefallen, sowohl was die Auswahl von Zeichen als auch was die Position von gemeinsamen Zeichen betrifft, sodass ein Austausch von Texten zwischen Personalcomputern unterschiedlichen Typs zu unerwarteten Ergebnissen führen kann.

Steuerzeichen

Steuerzeichen dienen dazu, an Endgeräten verschiedene Funktionen auszulösen. Sie sind in der Tabelle durch ein zwei bis drei Zeichen langes Kürzel für ihre Funkti¬on (in kursiver Schrift) dargestellt. Die wichtigsten Steuerzeichen sind BS (backspace, Rück¬schritt), HT (horizontal tab, Sprung zur nächsten Tabulatorposition), CR (carri¬age return, Wagenrück¬lauf), LF (line feed, Zeilenvorschub), FF (form feed, Seiten¬vorschub), BEL (bell, Auslösung eines akusti¬schen Signals, z.B. eines Pfeiftons), sowie ESC (escape, ein Steuerzeichen, das Zeichenfolgen für Steuer¬funktionen ein¬leitet, die im ASCII-Zeichensatz nicht definiert sind).

UNICODE-Zeichensatz

Abhilfe gegen die Mängel des ASCII-Zeichensatzes bietet der sog. UNICODE-Zeichensatz. Grundidee dieses Zeichensatzes ist es, alle Zeichen der gegenwärtig verwendeten (sowie auch der wichtigsten historischen) Schriften in einem Zeichensatz darstellen zu können. Dies beinhaltet auch die fernöstlichen Schriften (japanisch, chinesisch und koreanisch), die sich durch einen sehr großen Zeichenvorrat auszeichnen (da es sich bei diesen Schriften um Wort- bzw. Silbenschriften handelt). Da bei einem derart großen Zeichensatz mit einem Byte für die Darstellung eines Zeichens nicht das Auslangen gefunden werden kann, verwendet der UNICODE-Zeichensatz zwei Byte (16 Bit) zur Darstellung eines Zeichens. Vorkehrungen zur Verwendung des UNICODE-Zeichensatzes gibt es in den gängigen Betriebssystemen (z.B. Windows), Programmiersprachen (z.B. Java) und einigen anderen Programmen.

UTF-8

UTF-8 (Abk. für 8-bit Unicode Transformation Format)

Darstellung von Bildern und Schall

Unsere Wahrnehmung der Außenwelt in Form von Bildern, oder Schall ist analoger Natur: In unseren Sinnen entsteht ein exaktes Abbild der Außenwelt, indem eine Größe der Außenwelt (im Fall von Bildern die Farbe, bei Schallwellen die Amplitude), die sich in Abhängigkeit des Ortes (statische Bilder), der Zeit (Schall), bzw. auch beider Bezugsgrößen (Bewegtbilder) ändern, in unseren Sinnesorganen nachgebildet und transformiert werden. Der Genauigkeit, mit der diese Größen wahrgenommen werden, sind (zumindest theoretisch) keine Grenzen gesetzt.

Um analoge Abbildungen mit Computersystemen bearbeiten, verarbeiten, speichern und transportieren zu können, müssen diese Größen in Einheiten bestimmter Größe zerlegt werden: ein Bild wird gerastert und so in Bildpunkte zerlegt, eine Schallwelle bzw. ein Bewegbild wird in gewissen Zeitabständen abgetastet, und auch die Zielgröße wird auf gewisse Werte hin approximiert. Auf diese Weise erhält man für jeden Bildpunkt (Bilder) und/oder Zeitpunkt (Schall, Bewegbilder) einen (oder mehrere) Zahlenwert(e) als Abbildung der Zielgröße, die dann digital (d.h. im Binärsystem) dargestellt werden.

Die Umkehrung des Vorgangs (zur Ausgabe des Bildes bzw. der Schallwelle) erfolgt, indem die digitalisierten Zielgrößen an den betreffenden Bildpunkten bzw. Zeitpunkten wieder in ihre analoge Form gebracht (und eventuell durch Zwischenwerte auf geeignete Weise verbunden werden). Wird die Auflösung aller Größen klein genug gewählt, ist kein Unterschied zwischen dem regenerierten Bild bzw. der regenerierten Schallwelle und dem Original festzustellen.

Dateiformate

In einem elektronischem Dokument müssen häufig Informationen verschiedener Art gespeichert werden: Ein Textdokument z.B. enthält nicht nur den erfassten Text, sondern auch Formatinformationen (Schriftart und -größe, Seitengröße, Ränder, Tabulatorpositionen und -arten, Schriftausrichtung, ...) sowie eingebettete Grafiken und Bilder.

Um all diese Informationen in einer Datei (die zunächst nichts anderes als eine Folge von Bytes ist) richtig identifizieren und interpretieren zu können, müssen Konventionen festgelegt werden, z.B. wie die verschiedenen Informationsarten gekennzeichnet sind, wie ihre Anfangsposition und ihre Länge in der Datei ermittelt werden kann, ... Ein Satz von solchen Konventionen wird als ein Dateiformat bezeichnet.

Dateiformate wurden für verschiedene Zwecke definiert: für grafische Informationen (sowohl für Vektorgrafiken als auch für Pixelgrafiken), für Textdokumente, für die Auf¬zeichnung von Schall, für Multimediapräsentationen, für Programme (die „nur” spezielle Dateien sind), ... Für den gleichen Zweck können dabei durchaus verschiedene Dateiformate definiert sein. Neben standardisierten Dateiformaten (bei Bildern z.B. GIF, das „Graphics Image Format”, oder JPEG, ein von der „Joint Photographic Expert Group” genormtes Dateiformat), die auch zum Informationsaustausch zwischen verschiedenen Anwendungsprogrammen geeignet sind, definieren viele Applikationen eigene („proprietäre”) Dateiformate.

Der Benutzer eines Personalcomputers speichert ein von ihm bearbeitetes Dokument (Text, Daten, Bild, Sprache, Sound) in einem vom jeweiligen Anwendungssoftwarepaket vorgesehenen Dateiformat unter Verwendung eines vom Betriebssystem zugelassenen Dateinamens (Filenames) ab. Zu beachten sind die daraus resultierende eingeschränkte Zugänglichkeit und Nutzbarkeit durch jene Benutzer, die andere Anwendungssoftwarepakete einsetzen. Die Vielfalt an PC-Dateiformaten (Fileformaten) erschwert nicht nur das Wiederauffinden von gespeicherten Dokumenten, sondern auch das Nutzen der Informationen durch andere Benutzer.

Immer häufiger bestehen bei Endbenutzerwerkzeugen sowohl beim Speichern, als auch beim Öffnen von Dokumenten Wahlmöglichkeiten zwischen mehreren Dateiformaten.

Textformate

  • .txt (ASCII Textdatei)
  • .odt (OpenOffice.org Writer)
  • .docx (XML-basiertes Dateiformat Microsoft Word)
  • .doc (Microsoft Word)
  • .rtf (Rich Text Format; zum Datenaustausch zwischen Textverarbeitungsprogrammen unterschiedlicher Hersteller)
  • .pdf (Portable Document Format; ist ein plattformübergreifendes Dateiformat für Dokumente)

Tabellenkalkulationsformate

  • .ods (OpfenOffice.org Calc)
  • .xls (Microsoft EXCEL)
  • .xlsx (XML-basiertes Dateiformat Microsoft Excel)

Grafikformate

  • TIFF Tag Image File Format (Fa. Aldus). Standard für Apple Macintosh und „Wintel“-PCs, wird auch von vielen Scan¬nern unterstützt.
  • PCX Format von Paintbrush (Fa. ZSOFT), wird u. a. von Ven¬tura Publi¬sher (Xerox) und Pagemaker (Aldus) unter¬stützt.
  • GIF Graphics Interchange Format (Fa. CompuServe) beinhaltet verlustfreie Kompression.
  • JPEG, JFIF JPEG File-Interchange-Format der Joint Photogrgaphic Experts Group. Das JPEG-Verfahren reduziert (für das mensch¬liche Auge we¬niger sichtbar) die Bildqualität und kompri¬miert den File, um die File¬größe zu verringern. Das Verfahren wird ver¬wendet u. a. im Bereich des World-Wide-Web (Extensions: .jpeg, .jpg)
  • PNG Portable Network Graphics (PNG) ist ein Grafikformat mit verlustfreier Kompression.
  • SVG Scalable Vector Graphics (SVG, deutsch skalierbare Vektorgrafiken) ist ein Standard zur Beschreibung zweidimensionaler Vektorgrafiken in der XML-Syntax.
  • PSD Photoshop Document (PSD) ist eines der proprietären Dateiformate von Adobe Photoshop.

Video und Audio

Ausführbare Dateien

Präsentationsdateien

Sicherung der Informationsdarstellung

Informationen müssen gegen Fehler abgesichert werden, die z.B. bei Datenübertragungen (durch Störungen des elektrischen Signals), aber auch durch Speicherung auf defekten Speichermedien auftreten können. Das Prinzip hierfür ist überall dasselbe: Zusätzliche („redundante” ) Bits werden eingeführt und erhalten ihren Wert in Abhängigkeit von den abzusichernden Daten.

Ein einfaches Verfahren dieser Art ist das Paritätsbit: Ein zusätzliches Bit wird so gesetzt, dass die Anzahl der Eins-Bits gerade (bei „gerader Parität”) bzw. ungerade („ungerade Parität”) ist. Lautet z.B. der Wert eines Bytes 01101011, so ist dieser Wert bei gerader Parität durch ein Bit mit dem Wert 1 zu ergänzen: Es ergibt sich 011010111. Wird ein Bit verfälscht (z.B. 010010111), ist die Anzahl der Eins-Bits ungerade, und die Verfälschung der Daten wird erkannt. Der Fehler kann aber aus den falschen Daten heraus nicht korrigiert werden (im Fall der Datenübertragung z.B. müssen die verfälschten Werte noch einmal angefordert werden). Ebenso wenig können Fehler erkannt werden, bei denen zwei Bits verfälscht wurden (z.B. 010010101), da die Anzahl der Eins-Bits gerade bleibt.

Aufwendigere Verfahren können auch Fehler erkennen, bei denen mehr als ein Bit verfälscht wird; manche dieser Verfahren können auch bestimmte Fehler korrigieren, ohne dass die verfälschten Daten neu übertragen werden müssen. (Im Fall von Disketten und Festplatten wird z.B. ein Verfahren namens „cyclic redundancy check” eingesetzt; wird z.B. beim Lesen oder Beschreiben einer Diskette oder Festplatte die Fehlermeldung „CRC-Fehler” angezeigt, so bedeutet dies, dass eine Verfälschung der aufgezeichneten Information eingetreten ist – z.B. aufgrund eines Materialdefekts auf dem Datenträger.)

Datenkompression

Wird bei den Verfahren zur Fehlererkennung und -korrektur gezielt Redundanz eingeführt, so sollen die Verfahren der Datenkompression Redundanz reduzieren (etwa um Speicherplatz einzusparen oder die Dauer einer Datenübertragung zu verkürzen).

Grundlage der Datenkompression bildet dabei die Beobachtung, dass verschiedene Werte nur selten gleich häufig gebraucht werden (z.B. kommt in deutschen Texten das „E” wesentlich häufiger vor als das „Y”). Diese Beobachtung kann ausgenutzt werden, indem häufiger vorkommende „Zeichen” durch kürzere Bitfolgen dargestellt werden als seltenere Zeichen (mit dieser Maßnahme allein kann z.B. bei deutschen Texten eine Reduktion des benötigten Speicherplatzes um ca. 30% erreicht werden).

Aufwendigere Verfahren, die noch bessere Ergebnisse liefern, berücksichtigen darüber hinaus Abhängigkeiten zwischen verschiedenen „Zeichen” (so kann z.B. angenommen werden, dass in den Worten der deutschen Sprache auf jedes „Q” ein „U” folgt; Bilder besitzen häufig größere, mit einer Farbe eingefärbte Flächen, sodass ein Bildpunkt weitaus häufiger mit der Farbe eines Nachbarpunktes eingefärbt ist als mit einer anderen Farbe). Extrem hohe Kompressionsraten kann man in Spezialfällen erreichen, in denen das „Original” nicht exakt rekonstruierbar, sondern lediglich erkennbar bleiben muss (z.B. bei Bildern oder Schallwellen); höhere Datenkompressionsraten bedingen in diesen Fällen jedoch immer einen stärkeren Qualitätsverlust zum Original. Kann man das Original wieder vollständig herstellen spricht man von verlustfreier Kompression, ansonsten von verlustbehafteter Kompression. Komprimierte Daten sind zur Durchführung von Be- und Verarbeitungsoperationen allerdings ungeeignet. Vor Be- und Verarbeitungsschritten sind diese Daten daher wieder zu dekomprimieren