Codes/Kompression/Krypto/Media

Theorie zu Grundlagen Digitaltechnik, Codes, Kompression, Kryptologie und Multimedia

15. Juni 2021

Inhalt Teil-A «GRUNDLAGEN»

Inhalt Teil-B «NUMERISCHE CODES»

Inhalt Teil-C «ALPHANUMERISCHE CODES»

Inhalt Teil-D «KOMPRESSION»

Inhalt Teil-E «KRYPTOLOGIE»

Inhalt Teil-F «MULTIMEDIA»

Teil-A: «GRUNDLAGEN»

1. Massvorsätze

1.1 SI-Präfixe

Mit SI-Präfixe («Système international d’unités») sind Massvorsätze gemeint. Diese wenden wird ganz selbstverständlich auf z.B. Basisgrössen wie Länge in Kilometer «km» oder Masse in Kilogramm «kg» an. Diese Präfixe kommen allerdings auch in der Informatik vor, wie z.B. bei «MB/s» für Megabyte pro Sekunde oder «kb/s» für Kilobit pro Sekunde. Wenn also eine Sache «MegaCool» ist, heisst das, dass sie eine Million Mal «Cooler» ist als nur «Cool».

  • [Y] → Yotta → 1024 → 1'000'000'000'000'000'000'000'000 → Quadrillion
  • [Z] → Zetta → 1021 → 1'000'000'000'000'000'000'000 → Trilliarde
  • [E] → Exa → 1018 → 1'000'000'000'000'000'000 → Trillion
  • [P] → Peta → 1015 → 1'000'000'000'000'000 → Billiarde
  • [T] → Tera → 1012 → 1'000'000'000'000 → Billion
  • [G] → Giga → 109 → 1'000'000'000 → Milliarde
  • [M] → Mega → 106 → 1'000'000 → Million
  • [k] → kilo → 103 → 1'000 → Tausend
  • [-] → 100 → 1 → Eins
  • [m] → milli → 10-3 → 0.001 → Tausendstel
  • [µ] → mikro → 10-6 → 0.000'001 → Millionstel
  • [n] → nano → 10-9 → 0.000'000'001 → Milliardstel
  • [p] → piko → 10-12 → 0.000'000'000'001 → Billionstel
  • [f] → femto → 10-15 → 0.000'000'000'000'001 → Billiardstel
  • [a] → atto → 10-18 → 0.000'000'000'000'000'001 → Trillionstel

Beispiele:

  • 1km = 1‘000 Meter
  • 1kg =1‘000 Gramm
  • 1kb = 1‘000 Bit (kleines b!!!)
  • 1MB = 1‘000‘000 Byte (grosses B!!)
  • Übrigens: 1Byte entspricht 8 Bit (1B = 8b)

1.2 IEC-Präfixe

Die folgenden IEC-Präfixe «International Electrotechnical Commission» werden für Kapazitätsangaben bei Speichermedien verwendet. Grund: Für Datenspeicher mit binärer Adressierung ergeben sich Speicherkapazitäten von 2n Byte, d. h. Zweierpotenzen.

  • [Yi] → Yobi → 280 → 1'208'925'819'614'629'174'706.176
  • [Zi] → Zebi → 270 → 1'180'591'620'717'411'303'424
  • [Ei] → Exbi → 260 → 1'152'921'504'606'846'976
  • [Pi] → Pebi → 250 → 1'125'899'906'842'624
  • [Ti] → Tebi → 240 → 1'099'511'627'776
  • [Gi] → Gibi → 230 → 1'073'741'824
  • [Mi] → Mebi → 220 → 1'048'576
  • [Ki] → Kibi → 210 → 1'024

Beispiele:

  • 1 MiB ist 1 Mebibyte oder 1'048'576 Byte
  • 512 MiB (Mebibyte) = 512 * 220 Byte = 536'870'912 Byte
  • 256 kib (Kibibit) = 256 * 210 Bit = 262'144 Bit
  • Übrigens: 1Byte entspricht 8 Bit (1B = 8b)

2. Zahlensysteme

Im Folgenden werden die für Informatiker wichtigsten positionellen bzw. Stellenwert-Zahlensysteme behandelt: 2-er, 10-er und 16-er System

Bei positionellen bzw. Stellenwert-Zahlensystemen gilt allgemein:


2.1 Das Dezimalsystem

Dieses Zahlensystem ist allseits bekannt. Darum knüpfen die folgenden Betrachtungen an diesem System an:
(Damit eine Dezimalzahl von einer Binär- oder Hexadezimalzahl unterschieden werden kann, soll sie am Ende mit einem tiefergestellten «D» (Tiefstellung/Subskript) gekennzeichnet werden. Bsp.: 5238D, 1000D


2.2 Das Binärsystem

Das Binärsystem kennt nur die Ziffern 0 und 1. Im Gegensatz zum Dezimalsystem wo vorausgesetzt werden kann, dass die kleinstwertigste Ziffer immer rechts steht, trifft das bei Binärzahlen nicht immer zu, insbesondere bei Elektronik-Schaltplänen nicht. Darum sollte dies mit dem Zusatz LSB bzw. MSB geklärt werden.
(Damit eine Binärzahl von einer Dezimal- oder Hexadezimalzahl unterschieden werden kann, soll sie am Ende mit einer tiefergestellten «B» (Tiefstellung/Subskript) gekennzeichnet werden. Bsp.: 1101B
In vielen Fällen werden sogenannte führende Nullen angegeben. Die Dezimalzahl 5D sieht als 4-Bit-Zahl demzufolge so aus: 0101B, als 8-Bit-Zahl: 0000'0101B und als 16-Bit-Zahl: 0000'00000'0000'0101B)


2.3 Das Hexadezimalsystem

Das Hexadezimalsystem bedient sich für die ersten zehn Werte bei den Ziffern des Dezimalsystems. Für die weiteren sechs Werte benutzt man Ziffern des Alphabets.
Zahlen in hexadezimaler Schreibweise begegnet man z.B. in der Netzwerktechnik bei MAC- oder IPv6-Adressen oder bei der RAM-Speicheradressierung bzw. immer dann, wenn die binäre Schreibweise zu einem riesigen Zahlenkoloss führen würde. Stellen sie sich eine 128 Bit-IPv6-Adresse in binärer Schreibweise vor - also mit 128 Ziffern. Sie ist schon mit den 32 Ziffern in Hex lange genug.
(Damit eine Hexadezimalzahl von einer Binär- oder Dezimalzahl unterschieden werden kann, soll sie am Ende mit einer tiefergestellten «H» (Tiefstellung/Subskript) gekennzeichnet werden. Bsp.: 1A3BH , 1426H, 1001H)


2.4 Die Fortlaufende Division

Wird verwendet zur Umrechnung von Dezimal zu Binär oder Dezimal zu Hexadezimal.


2.5 Umrechnung Hexadezimal zu Binär

  • Binär > Hex: Binärzahl vom LSB in Richtung MSB in 4-er Gruppen unterteilen
  • Hex > Binär: Eine Hex-Ziffer entsprechen 4 Bit’s

2.6 Die HEX-Tabelle


2.7 Binäres Rechnen und Datenüberlauf

0 + 0 = 0
0 + 1 = 1
1 + 1 = 10 (Übertrag von 1 auf die nächsthöhere Stelle)
1 + 1 + 1 = 11 (Übertrag von 1 auf die nächsthöhere Stelle)

Beispiel Wertebereich von Integer:

Der Integer ist aktuell eine 32 Bit-Ganzzahl. (Früher 16 Bit)
232 ergibt 4'294'967'296 Kombinationen.

Ein vorzeichenloser Integer (Unsigned Int) hat einen Wertebereich von 0 bis 4'294'967'295
Ein  normaler Integer mit Vorzeichen hat einen Wertebereich von -2'147'483'648 bis +2'147'483'647


2.8 Das 2-er Komplement - Negative Zahlen im Binärsystem

Bisher betrachtete wir nur den positiven Ganzzahlenbereich im Sinne von «Unsigned Integer». Schnell wird aber das Bedürfnis aufkommen, den Wertebereich in den negativen Zahlenbereich «Integer» zu erweitern. Dazu werden wir uns nun ein paar Gedanken machen.

Wie wir nun gesehen haben, würde die Komplementbildung mit dem 1-er Komplement funktionieren, ausser es entsteht ein Übertrag oder eine Nulldurchschreitung. Mit einem Korrekturwert könnte dieser Mangel behoben werden. Allerdings bleibt der Nachteil, dass der Wert «0» zweimal vorhanden ist. Besser wird das 2-er Komplement funktionieren, wie wir nun sofort erkennen werden.


3. Bit und Byte

3.1 Einführung

Der Begriff Bit (engl. Binary Digit) dient als Masseinheit für die Datenmenge digital gespeicherter oder übertragener Daten. Der Computer kennt nur 0 und 1. Das bedeutet soviel wie «Strom ein», «Strom aus». Das heisst, dass die Daten in der PC-Elektronik binär verarbeitet werden. Ein guter Grund also, sich mit dem Binärsystem oder 2-er System auseinanderzusetzen. In der Informatik ebenfalls wichig ist das Hexadezimalsystem oder 16-er System, weil z.B. Speicheradressen in Hex angegeben werden, aber auch MAC-Adressen oder sogar die neuen IPv6-Adressen.

  • 1 bedeutet: Logisch WAHR oder TRUE / eine Spannung vorhanden / Licht an / On / Schalter geschlossen
  • 0 bedeutet: Logisch FALSCH oder FALSE / keine Spannung vorhanden / Licht aus / Off / Schalter offen

In der Rechnerarchitektur wird für die Datenbehandlung eine übergeordnete Einheit gebildet. Man fasst 8 Bit zur nächst grösseren Einheit, dem Byte zusammen. Zwei Bytes, also 16 Bit werden Word genannt und ein halbes Byte bzw. 4 Bit's sind ein Nibble.

  • Kleiner als 1 Bit geht nicht! (z.B. existiert kein 1/2 Bit)
  • Das Kurzzeichen für Byte ist das grosse «B» (z.B. 100MB)
  • Das Kurzzeichen für Bit ist das kleine «b» (z.B. 100b)
  • 1 Byte beinhaltet 8 Bit
  • 1 Byte entspricht zwei HEX-Ziffern (z.B. 1011'0100 = B4)
  • 1 Byte hat 256 Bitkombinationen
  • Speichergrössen von z.B. SSD's oder Harddisks werden üblicherweise in Byte angegeben (z.B. 1TB) Siehe auch IEC-Präfixe.
  • Datenübertragungsraten von z.B. Modems werden üblicherweise in Bit/Sekunde angegeben (z.B. 800kb/sec)

3.2 Die Anzahl Bit-Kombinationen ermitteln

Wie aus obiger Tabelle ersichtlich ist, verdoppelt sich die Anzahl Bitkombinationen mit jedem weiteren Bit:

  • 1 Bit ergibt 2 Kombinationen (0 1)
  • 2 Bit ergibt 4 Kombinationen (00 01 10 11)
  • 3 Bit ergibt 8 Kombinationen (000 001 010 011 100 101 110 111)
  • 4 Bit ergibt 16 Kombinationen (siehe obige Tabelle)
  • 5 Bit ergibt 32 Kombinationen
  • 6 Bit ergibt 64 Kombinationen
  • 7 Bit ergibt 128 Kombinationen
  • 8 Bit ergibt 256 Kombinationen
  • und so weiter...

Beachten sie, dass z.B. 256 Kombinationen bei positiven Dezimalzahlen der Bereich von 0 bis 255 bedeutet.

Die Anzahl Kombinationen lassen sich auch direkt mit dieser Formel berechnen:
«Anzahl Bitkombinationen» = 2 hoch «Anzahl Bitstellen»
(hoch = Exponentialfunktion)

Zahlenbeispiel:
16 Bit ergeben wieviele Kombinationen? Die Berechnung dazu lautet...
«Anzahl Bitkombinationen» = 2 hoch «Anzahl Bitstellen»
«Anzahl Bitkombinationen» = 2 hoch 16
«Anzahl Bitkombinationen» = 65'536

Der umgekehrte Weg ist ebenfalls häufig gefragt, wenn die Anzahl benötigten Bits verlangt sind, um z.B. bei einer A/D-Wandlung 100 analoge Werte unterscheiden zu können. Man könnte nun in der obigen Auflistung nachschauen, wieviel Bits nötig werden. Es geht aber auch hier mit einer einfachen Berechnung:

«Anzahl Bit» = AUFRUNDEN von (LOG «Anzahl Bitkombinationen» / LOG 2)
(LOG = Zehnerlogarithmus)

Zahlenbeispiel:
1000 Kombinationen sind verlangt. Die Berechnung dazu lautet...
«Anzahl Bit» = AUFRUNDEN von (LOG 1000 / LOG 2)
«Anzahl Bit» = AUFRUNDEN von (3 / 0.301)
«Anzahl Bit» = AUFRUNDEN von (9.966)
«Anzahl Bit» = 10
Kontrolle: 2 hoch 10 = 1024
Da aber «nur» 1000 Kombinationen verlangt sind, wurde um 24 Kombinationen über das Ziel hinausgeschossen. Die nächstkleiner Bitanzahl wäre 9. Dies würde allerdings nur 512 Kombinationen ergeben, was definitiv zu wenig wäre.

3.3 Bitmap-Bilder und Vektorgrafik

Unter Bitmap versteht man eine Raster- oder Pixelgrafik. Diese besteht aus einer Anzahl von Pixeln (Picture Elements). Eine Bitmapgrafik lässt sich problemlos in der Auflösung verkleinern. Das Vergrössern wird allerdings zum Problem, weil dadurch die Pixelgrenzen zur Vorschein treten. Typische Vertreter von Bitmapgrafiken sind JPG, TIF, PNG und GIF.

Im Gegensatz dazu existieren die sogenannten Vektrografiken. Bei diesen wird das Bild aus grafischen Primitiven wie Linien, Kreisen, Polygonen oder allgemeinen Kurven (Splines) beschrieben und sind daher verlustlos skalierbar (In der Grösse veränderbar). Die Schrifttypen (Fonts) bestehen zum Beispiel aus Vektrografiken.

3.4 Kombinatorik

Mit Kombinatorik ist hier die Verknüpfung zweier Aussagen oder Aussagefunktionen gemeint.

3.5 Parallele und serielle Datenübertragung

Die Benutzung eines Taktsignals (Takt, Clock Signalclock) ist ein Verfahren, den richtigen zeitlichen Ablauf beim Betrieb einer elektronischen Schaltung sicherzustellen. Insbesondere benötigen viele digitale Schaltungen ein entsprechendes Signal zur zeitlichen Koordination bzw. Synchronisation der Aktionen mehrerer Schaltkreise (insbesondere der von Flipflops bzw. Speicherzellen) innerhalb komplexer digitaler Systeme.

Das Taktsignal ist ein periodisches Signal, das durch seine Frequenz (Taktfrequenz, Taktrate) bzw. deren Kehrwert (Periodendauer) charakterisiert ist. Es wechselt dabei zwischen zwei Logikpegeln High (1) und Low (0) ab. Prominentes Beispiel eines Taktsignals ist der Systemtakt (System Clock) in einem Computer, der die Arbeitsgeschwindigkeit vieler Komponenten, insbesondere des Mikroprozessors, bestimmt.

Die Einheit der Taktfrequenz ist Hertz (Hz). Ein Hertz entspricht einem Takt pro Sekunde.

3.6 Adress- und Datenbus → Speicherberechnung

3.7 Bits und Bytes auf dem Speichermedium

Daten liegen in Form von Bits und Bytes auf einem Speichermedium. Solange sie noch in Bearbeitung sind, auf dem flüchtigen Primärspeicher (Memory, RAM), wenn sie danach dauerhaft abgelegt werden sollen, auf dem Sekundärspeicher (Harddisk, SSD) oder einem Backupmedium (CD, DVD, BluRyay, DAT, DLT, VLT etc.).
Beim Sekundärspeicher gibt das gewählte Dateisystem vor, wie die Daten auf dem Medium organisiert sind.
Zum Speichern von Daten nun ein paar Begriffserklärungen:

  • Dateisystem: Ablageorganisation auf einem Datenträger. Dateien können gespeichert, gelesen, verändert oder gelöscht werden.
  • FAT32: File Allocation Table → Dateisystem. (Dateien dürfen max. bis zu 4 GiB gross werden; Keine Berechtigungen/Zugriffsrechte)
  • e3xFAT: Einer der verbesserten Nachfolger vom FAT32.
  • NTFS: New Technology File System von Microsoft für Windows. Sehr kleine Dateien und Verzeichnisse werden direkt in der MFT "Master File Table" abgespeichert. Flexible Rechteverwaltung durch Verwendung von ACL "Access Control List"
  • Sektor: Kleinste verwaltbare Einheit auf dem Harddisk (512 Byte)
  • Cluster (WIN) / Block (LIN): Logische Zusammenfassung von Sektoren auf einem Datenträger. Kleinste vom Betriebssystem verwaltbare Einheit. Die Clustergrösse lässt sich beim Formatieren einer Harddisk bestimmen, muss aber ein Vielfaches der Sektorgrösse sein. (WIN-typisch bzw. Default: 4kB)
  • Partition: Unterteilung von Datenträgern. Jede Partition erhält unter WIN einen eigenen Laufwerksbuchstaben.
  • MasterBootRecord: Der erste Datenblock eines partitionierten Speichermediums. Enthält Startprogramm (Bootloader)
  • Formatierung: Vorbereitung eines Speichermediums zur Aufnahme von Daten.
  • Kontingentierung: Den verwendbaren Festplattenplatz für einzelne Nutzer beschränken.
Untersuchen sie die folgenden Dateien (Eigenschaften). Sie enthalten exakt 20, 200, 400, 600, 800, 1000 bzw. 2000 ASCII-Zeichen zu je 8 Bit: Character_txt.zip
(TXT-Dateien vorher aus der ZIP-Datei extrahieren und auf den HD kopieren!) Was stellen sie fest?

3.8 Berechnungsbeispiele

  • Anzahl Kombinationen: Es sollen 16 verschiedenen Dingen eine eindeutige Bitkombination zugeordnet werden. Wieviele Bit sind nötig?
    Ergebnis durch probieren: 2 Bit ergeben 2*2=4 Kombinationen (also zuwenig), 3 Bit ergeben 2*2*2=8 Kombinationen (also immer noch zuwenig) , 4 Bit ergeben 2*2*2*2=16 Kombinationen (Passt!)
    Ergebnis durch Berechnung: Anzahl Bit erhält man durch Aufrunden der Rechnung (log(Anzahl verschiedenen Dinge)/log2).
  • Datenübertragungsrate:Ein 8 Bit breiter Datenbus wird mit 1kHz getaktet. Wie gross wird die Datenübertragungsrate in kb/s?
    1kHz Takt bedeutet, dass pro Sekunde 1000x 8 Bit über den Datenbus geschickt werden. Somit 1000Hertz*8Bit=8000Bit/sec oder 8kb/s
  • Datenbusbreite: Ein paralleler Datenbus wird mit 1kHz getaktet. Es werden 8kb/sec übertragen. Wie breit ist der Datenbus?
    Das ist die Umkehrung der vorangegangenen Berechnung! 8000 / 1000 = 8. Also ist der Bus 8 Bit breit.
  • Speichergrösse: Ein Speicherbaustein wird durch einen 8 Bit breiten Datenbus versorgt. Zusätzlich führt ein 4 Bit breiter Adressbus an den Chip. Wieviele Bits fasst dieser Speicher?
    Dazu stelle man sich eine Schlafzimmerkommode mit vielen Schubladen vor. In jeder Schublade haben 8 Bit Platz. Will man nun Datenbits in einer Schublade speichern, sollte man sich merken, in welche Schublade man diese Bits versorgt. Dazu dient die Adresse. Da es sich hier um eine 4 Bit Adresse handelt, ergeben sich 2*2*2*2=16 Speicher-"Schubladen". Die Schubladen bzw. der Speicher kann also maximal 16 * 8 Bit Speichern. Das wären dann 128 Bit.
  • Analog-Digital-Wandler: Ein A/D-Wandler hat 4 Ausgänge. Er misst das Analogsignal 100x pro Sekunde oder anders ausgerückt: Die Samplingrate beträgt 100 Hertz. Wie viele Bit werden pro Sekunde gespeichert?
    4 Ausgänge am A/D-Wandler bedeutet 4 Bit pro Messung (oder 2*2*2*2=16 unterscheidbare analoge Eingangswerte, was aber in dieser Aufgabe nicht gefragt war). Da pro Sekunde 100x gemessen wird, ergeben sich pro Sekunde 100 x 3 = 400 Bit, also 400Bit/sec.

4. Analog / Digital

Der Mikroprozessor im PC versteht nur "Digital". (Einmal abgesehen von spezialisierten Mikrokontrollern mit integrierten A/D- und D/A Wandlern.) Zwei typische Vertreter von analogen Ein-/Ausgabegeräten: (weitere wären: Temperatursensor, Motorensteuerung etc.)

4.1 Die Anzeige von Werten in analoger oder digitaler Darstellung

  • Ein Vorteil der analogen Anzeige besteht darin, dass innerhalb des Anzeigebereichs viele beliebige Werte kontinuierlich angezeigt werden können.
  • Ein Nachteil der analogen Anzeige ist aber, dass Werte je nach Sicht auf die Zeigernadel, ungenau abgelesen werden. (Ablesefehler)
  • Für eine digitale Anzeige spricht, dass keine Ablesefehler gemacht werden können.
  • Allerdings werden bei der digitalen Anzeige die Werte nicht kontinuierlich, sondern zeitdiskret angezeigt. Je nach Samplingrate kann da ein kurzer Ausschlag übersehen werden. Ausserdem können bei obiger digitaler Anzeige nur Werte von 00.0 bis 99.9, also 1000 verschiedene Werte, angezeigt werden.

4.2 Die Analog-Digitalwandlung

Soll eine analoge Grösse wie z.B. ein Spannungswert von einem Rechner bearbeitet werden, muss dieser zuerst in seine digitale Form umgewandelt werden.

Ein digitale Signal kann aus einem Analogsignal, welches den zeitlich kontinuierlichen Verlauf einer physikalischen Grösse beschreibt, durch die Quantisierung und eine Abtastung/Sampling, welche zu definierten Zeitpunkten erfolgt, gebildet werden. Die digitalen Werte sind üblicherweise als Binärzahlen/Dualcode kodiert, so dass ihre Quantisierung in Bits angegeben wird. Analog-Digitalwandlung eines Audiosignals:

Die Digitalisierung eines analogen Signals hat immer zur Folge, dass das originale analoge Signal nicht mehr verlustlos rekonstruiert werden kann. Je nach Abtastrate und Auflösung kann man aber das digitale Signal in ein qualitativ befriedigendes analoges Signal zurückverwandeln. Der von der Digitalisierung herführende Treppeneffekt bzw. die dadurch entstehenden Oberwellen beim zurückverwandelten Analogsignal können mit entsprechenden analogen Filtern unterdrückt werden.

Beispiel MusicCD:

Bei der MusicCD wird das analoge Signal mit einer Samplingrate von 44.1kHz bei einer Auflösung von 16 Bit (65'536 verschiedene Analogwerte) abgetastet.

4.3 Das Abtasttheorem

Das Abtasttheorem besagt, dass ein Signal exakt rekonstruiert werden kann, wenn es mit mindestens der doppelten oberen Grenzfrequenz des analogen Signals abgetastet wurde. Bei der MusicCD mit Audio im hörbaren Bereich von 20Hz bis 20kHz bedeutet dies eine Abtastfrequenz von mindestens 40kHz.


5. Rechnen mit binären Operatoren

Dies ist optional und nur für Freunde von Mikrokontrollern und Programmiersprachen:
Rechnen mit binären Operatoren und dem Dual-Code (HEX, BIN)

x >> n bedeutet: Bitabfolge x um n-Stellen nach rechts verschieben (Rechts fallen die Bits heraus)
x << n bedeutet: Bitabfolge x um n-Stellen nach links verschieben (Neue 0-Bits werden rechts eingefügt)
& AND (UND WHT: 00=0 / 01=0 / 10=0 / 11=1)
| OR  (ODER WHT: 00=0 / 01=1 / 10=1 / 11=1)
^ XOR (Exklusives ODER WHT: 00=0 / 01=1 / 10=1 / 11=0)
~ NOT (Inverter z.B. 1011→0100)
(Die zur Verfügung stehende Bitbreite ist zu beachten! Data-Overflow)

Ganzzahlige Division durch 2
Zahlenbeispiel 1: 12 div 2 = 6
12 = 1100
1100 >> 1 = 110
110 = 6

Zahlenbeispiel 2: 15 div 2 = 7
15 = 1111
1111 >> 1 = 111
111 = 7

Restwert (Modulo) bei Division durch 2
LSB prüfen: 0→Rest-0, 1→Rest-1

Multiplikation mit dem Faktor 2
Zahlenbeispiel: 13 mul 2 = 26
13 = 1101
1101 << 1 = 11010
11010 = 26

Addition von 2 Bits inkl. Übertrag (Volladdierer)
(A=1.Bit, B=2.Bit, S=Summe, C1=Übertrag In, C2=Übertrag Out)
S = (A^B) ^ C1
C2= (A&B) | (C1&(A^B))

Zahlenbeispiel 1+0+1=10 oder 2
A = 1 (1. Bit)
B = 0 (2. Bit)
C1= 1 (Bit aus der vorangegangenen Binärstelle)
S = 0 (Summe)
C2= 1 (Übertrag in die nächste Binärstelle)

Bit auslesen
Zahlenbeispiel: Zweites Bit von links auslesen
a=0110
b=0011
c=0100
a & c = 0100
b & c = 0000

Bit setzen
Zahlenbeispiel: Zweites Bit von links setzen
a=0010
b=0110
c=0100
a | c = 0110 (Bit wurde gesetzt)
b | c = 0110 (Bit war schon gesetzt)

Bit löschen
Zahlenbeispiel: Zweites Bit von links löschen
a=0010
b=0110
c=0100   (Hinweis: ~c = 1011)
a & ~c = 0010 (Bit war schon gelöscht)
b & ~c = 0010 (Bit wurde gelöscht)

6. Ein vereinfachtes Computermodell

Dies ist optional und nur für Freunde von Mikrokontrollern und Programmiersprachen

Mikroprozessoren sind aus den komplexen Anforderungen an elektronische Schaltkreise entstanden. Durch immer höhere Integrationsdichten wurde es möglich ein komplettes Steuer- und Rechenwerk auf einem Chip zusammenzufassen – dem Mikroprozessor. Kern des Mikroprozessors, die eigentliche Recheneinheit ist der zentrale Prozessor, die CPU (Central Processing Unit). Um Aufgaben auszuführen, benötigt die CPU den Steuerbus oder Control Bus. Das Rechenwerk ist unter den Bezeichnungen arithmetisch-logische Einheit oder ALU  (engl. Arithmetic Logical Unit) bekannt. Es ist der Teil eines Computers, der arithmetische (Addition, Subtraktion, Multiplikation, Division) und logische (UND-, ODER-, NICHT-Verknüpfung) Operationen ausführt. Damit daraus ein funktionsfähiger Rechner entsteht, werden zusätzliche Komponenten benötigt:

  • Um Daten und Programme zu speichern werden Speicherbausteine eingesetzt. Diese sind als überschreibbare Speicher (RAM) oder als Festwertspeicher (ROM, PROM, EPROM, EEPROM, Flash-PROM) realisierbar. Wenn die Programme nicht mehr geändert werden, können diese auch in einem sogenannten Festwertspeicher untergebracht werden. Der Datenspeicherbereich  muss immer änderbar sein und wird deshalb immer in einem überschreibbaren Speicher liegen.
    Der Programmspeicher und der Datenspeicher müssen nicht zwingend im selben Speicherblock vereint sein. Es ist möglich, Programme und Daten in separaten Speicherblöcken unterzubringen. Je nach Art der Speicherverwaltung unterscheidet man zwischen zwei verschiedenen grundsätzlichen Architekturen eines Prozessors: der Architektur nach «von Neumann» und derjenigen nach «Harvard».
  • Der «Von Neumann-Rechner» arbeitet sequentiell, d.h. Befehle (Instruktionen) werden nacheinander abgeholt, interpretiert und ausgeführt und das Resultat wird anschliessend abgespeichert.
  • Bei der Harvard-Architektur sind Instruktionen und Daten in getrennten Speichern untergebracht. Der Prozessor besitzt getrennte Busse für Instruktions- und Datenzugriffe, dadurch kann ein überlappender Betrieb durchgeführt werden.
    Die nächste Instruktion kann bereits abgeholt werden, während noch Daten in den Speicher geschrieben werden. Der Aufwand für die Realisierung einer Harvard Architektur ist beträchtlich. Zahlreiche Pin-Anschlüsse (Kontakte) am Prozessor werden zusätzlich benötigt. Oft wird eine reine Harvard Architektur intern im Chip realisiert, nach aussen wir der gemeinsame Datenbus geführt.
  • Um mit der Aussenwelt zu kommunizieren, sind Peripheriebausteine nötig, die Signale erfassen und ausgeben können: Ein- und Ausgabeeinheiten.
  • Ein Taktgenerator (Clock-Generator) ermöglicht den Ablauf eines Programms in einem Mikrocomputer. Er dient auch als Zeitbasis für verschiedene andere Funktionen. Der Taktgeber teilt dem entsprechenden Gerät mit, dass es bei jedem Takt (Puls) eine weitere Funktion auszuführen hat. Der Taktgeber bestimmt damit z.B. wie schnell ein Programm abgearbeitet wird. Je schneller die Taktfolge, also je höher die Takt-frequenz, umso schneller wird ausgeführt.

6.1 Die Bestandteile

Die Hauptfunktion jedes Rechnersystems basiert auf dem EVA-Prinzip: Eingabe, Verarbeitung und Ausgabe. Die Verarbeitung findet in der  CPU (Central Processing Unit) statt und besteht aus Rechenwerk, Steuer-/Leitwerk und Speicher für Programme und Daten (Von-Neumann-Architektur).

  • CPU: Der Programm Counter verweist auf den aktuellen Programmschritt.
    Nach jeder Befehlsausführung wird der Programm Counter um 1 erhöht. Es ist aber auch möglich, durch einen Befehl den Programm Counter neu zu setzen.
    Im 8 Bit-Feld Instruktion/Adresse steht der anliegende Maschinenbefehl inkl. Adresse. Akkumulator/Register ist der unmittelbare Speicher, in den die CPU Resultate lädt und speichert. Die CPU arbeitet in zwei Takten:
    Fetch: (1. Takt)
    Der abzuarbeitende Maschinenbefehl wird vom RAM in die CPU geladen.
    Execute: (2. Takt)
    Die CPU führt die Instruktion (Maschinenbefehl) aus.
    Diese CPU kennt 10 unterschiedliche Befehle (Instruktionssatz)
  • RAM: Besteht aus 16 x 8 Bit bzw. 128 Bit oder 16 Byte. Die einzelne Speicherstelle wird über einen 4 Bit Adressbus angesprochen.
    Es ist immer nur eine Zeile aufs Mal betroffen. Die CPU „befiehlt“, welche Zeile es ist. Je nach CPU-Befehl werden Daten vom RAM gelesen oder dorthin gespeichert.
  • I/O: Wenn die CPU eine Eingabe oder Ausgabe von der Peripherie verlangt, ist das I/O betroffen. (I/O = Input/Output)

6.2 Maschinencode-Beispiel → Zwei Zahlen addieren

Das folgende Beispiel zeigt ein Programmablauf, bei dem zwei Werte aus dem Speicher gelesen, danach addiert und wieder in den Speicher zurückgeschrieben werden:

6.3 Maschinencode-Beispiel → Einfacher +/- Taschenrechner

Das folgende Beispiel zeigt einen kleinen Taschenrechner mit einer Additions/Subtraktions-Funktion. Dazu werden zwei Werte und die gewählte Operation +/- aus dem I/O gelesen, verarbeitet und wieder in das I/O zurückgeschrieben:

6.4 Der Maschinen-Befehlssatz

6.5 Unterschied zu realem Mikroprozessorsystem

Was unterscheidet nun unser "vereinfachter Micro-Computer zu Studienzwecken" von aktuellen Mikroprozessorsystemen?

  • Mehr RAM-Speicherplatz. Bedingt breiteren Adress- und Datenbus!
  • Mehrere Register in der CPU. Damit könnte man Werte auch im Register belassen anstatt sie sofort wieder ins RAM zurückschreiben zu müssen.
  • Mehrere I/O’s, damit gelichzeitig Werte anliegen dürfen.
  • Grösserer Instruktionssatz bzw. Maschinenbefehle. Unsere jetzige Maschine besitzt eigentlich nur zwei mathematische Operationen. Binäre Operatoren (AND, OR, Inverter etc.) fehlen gänzlich. Ebenfalls die sehr nützliche Bit-Shift-Funktion, die unbedingt auch mit an Bord sein müsste.
  • Ein System zum Unterbrechen eines laufenden Prozesses. (Interrupt, Multitasking)

Teil-B: «NUMERISCHE CODES»

7. Numerische Codes

Abgrenzung des Begriffs «Code»

  • Numerische Codes
    Werden im Computer verwendet, um ganze Zahlen in binären Zeichen darzustellen (Binärcodes) wie z.B. Dualcode, BCD, Graycode, Aikencode, Exzess-3-Code, 1-aus-n-Code und weitere
  • Alphanumerische Codes
    Z.B. ASCII-Code oder Unicode und wird im Computer verwendet, um Buchstaben, Zahlen und Satzzeichen durch Bitfolgen darzustellen
  • Strich-Code
    Z.B. der EAN-Code auf Verpackungen
  • Leitungscodes
    Bei der Datenübertragung werden die sog. Leitungscodes so aufgebaut, dass sie sich möglichst optimal an die Eigenschaften des Übertragungsmediums anpassen wie Unterdrückung eines Gleichspannungsanteils, Taktrückgewinnung etc. Beispiele: Manchester-Code bei Ethernet, NRZ-Code, Eight-to-Fourteen-Modulation (EFM) bei CD's, 8B10B-Code (Gigabit Ethernet) etc.
  • Media-Codecs
    MP3-Code, MPEG2-Code, MPEG-4-AVC-Code, Reed-Solomon-Code (Audio-CD)
  • Maschinen-Code
    Wird in der Computertechnik verwendet. Stellt ein Programm bzw. eine Art
    Vorgehensbeschreibung für den Prozessor dar
  • Quellcode
    Beim Programmieren kodiert man Algorithmen als Quellcode in einer
    Programmiersprache wie zB. C++, Java, etc. den man übrigens später in
    Maschinencode übersetzt bzw. kompiliert oder HTML-Code der von einem
    Webbrowser interpretiert wird (Negativbeispiel Spaghetti-Code ;-)
  • Geheimcode
    Mit monoalphabetischer Verschlüsselung werden Buchstaben durch
    andere Buchstaben ersetzt (Verschlüsselungsverfahren)
  • ISBN-Code
    International Standard Book Number zur Identifizierung von Büchern
  • Genetischer Code
    Eine biologische Anleitung, nach der während der Proteinbiosynthese die
    Informationen der DNA/RNA in Aminosäuresequenzen übersetzt werden
  • usw...

Unterscheidung zwischen «Codes» , «Protokollen» und «Formaten»

Ein Protokoll im Sinne der Informatik regelt den Datenzugriff innerhalb eines Netzwerkes oder eines Mehrplatzsystems durch mehrere Benutzer. Zum Beispiel:

  • Internet Protokoll - Grundlegendes Netzwerkprotokoll des Internets
  • Netzwerkprotokoll - Kommunikationsprotokoll im Netzwerkumfeld
  • Kommunikationsprotokoll - Regelwerk zum Datenaustausch
  • Sicherheitsprotokoll - Authentifikation von Subjekten, Absicherung bzw. Nachweis von Daten bzw. Kommunikation vor Veränderung bzw. Auslesung
  • Transaktionsprotokoll bei Datenbanken
Datenformat ist ein Begriff aus der Datenverarbeitung, der festlegt, wie Daten strukturiert und dargestellt werden und wie sie bei ihrer Verarbeitung zu interpretieren sind. Dateiformate werden in der Regel durch Software-Hersteller oder durch ein standardisierendes Gremium festgelegt. In einer Spezifikation sollte die Art der Codierung und Anordnung von Daten innerhalb eines Dateiformats genau beschrieben werden.


7.1 Definition des Begriffs «CODE»

  • Vorschrift, wie Nachrichten oder Befehle zur Übertragung oder Weiterverarbeitung für ein Zielsystem umgewandelt werden. Beispielsweise stellt der Morsecode eine Beziehung zwischen Buchstaben und einer Abfolge kurzer und langer Tonsignale her
  • Der Code heisst entzifferbar, wenn es eine eindeutige Umkehrabbildung gibt, die jedem Nachrichtenwort aus B wieder das ursprüngliche Wort aus A zuordnet
Definition «Code»: Eindeutige Abbildung der Zeichen des Zeichenvorrats 1 auf die Zeichen des Zeichenvorrats 2

7.2 Eigenschaften von Codes

Verschiedenartige Anwendungen erfordern spezialisierte Codes. Dabei geht es um:

  • Ökonomische Darstellung (Übertragungsgeschwindigkeit, Speicherplatzbedarf)
  • Sicherung gegen Verfälschung (Übertragungsfehler, Verarbeitungsfehler)
  • Schutz vor unbefugtem Zugriff (Verschlüsselung/Kryptologie)
Beschränken wir uns im folgenden auf binäre Codes (auch Dualcodes genannt). Welche Spezialisierungen (Codemerkmale) sind da denkbar?
  • Stellenzahl/Zeichenvorrat (2ˆStellenanzahl = Anzahl mögliche Zeichen)
  • Redundanz (Redundanz=Stellenzahl-Logarithmus zur Basis 2 / Anzahl realisierter Zeichen)
  • Gewichtung der einzelnen Binärstellen (zB. beim Dualcode wäre dies 1-2-4-8)
  • Erkennen/korrigieren von Übertragungsfehlern (CRC, ECC, Hammingdistanz)
  • Änderung nur einer Binärstelle beim Übergang zum nächsten Zahlenwert (Einschrittige Codes zB. Graycode)
  • Minimierung der 0- oder 1-Bits (Verlustlose Kompression: Morsecode, VLC)
    (Der Morsecode wird ausführlich im Thema «Kompression»behandelt)
  • Einfache Komplementbildung (Bringt Vorteile bei der Berechnung von arithmetischen Ausdrücken)
  • Unterscheidung von Zahlen grösser/kleiner 5 (Für eine einfache arithmetische Zahlenrundung)
  • Unterscheidung gerader/ungerader Zahlen (Vorteilhaft in der Arithmetik)
  • weitere...


7.3 Der BCD-Code

BCD bedeutet soviel wie Binary Coded Decimal). Der BCD-Code ist ein numerischer Code (Wortcode) und man kann damit eine Dezimalstelle bzw. die Zahlen von 0..9 darstellen. Mit diesem Code können z.B. einzelne Dezimalstellen von Anzeigen angesteuert werden. Dafür benötigt man zusätzlich noch einen BCD-zu-7-Segmentanzeige-Decoder.


7.4 Der 1-aus-n Code

1-aus-n Codes trifft man in Speicherchips, Tastaturen (Matrix), Displays (Matrix) etc. an. Im folgenden der vereinfachte Aufbau eines 32-Bit Speicherchips:


7.5 Der Graycode

Der Vorteil dieses Codes liegt darin, dass sich benachbarte Codewörter nur in einer einzigen binären Ziffer unterscheiden und dabei Übertragungsfehler verringert werden können, weil bei kontinuierlich ändernden digitalen Signalen auf mehradrigen Leitungen sich unterschiedliche Laufzeiten nicht auswirken können.
Dieser Code ist z.B. für die Erfassung eines Drehwinkels geeignet. Der Graycode lässt sich wie folgt aus dem Binärcode ableiten:

  1. Zahl1 = Binärcode der gewünschten Zahl
  2. Zahl2 = Rechtsshift der Zahl1 um 1 Bit
  3. Graycode = Zahl1 XOR Zahl2

7.6 Die Eight-to-Fourteen-Modulation (EFM) bei Music-CDs

EFM wird hauptsächlich bei der Datenaufzeichnung auf optischen Datenträgern wie Compact Discs (CDs) verwendet:
Das Abtasten einer CD erfolgt mittels einer Laserdiode. Der Laserstrahl wird an der CD reflektiert und eine Fotodioden registrieren Schwankungen in der Helligkeit. Die Umdrehungsgeschwindigkeit der Disk variert. Somit bleibt die Bahngeschwindigkeit am Lesekopf konstant.
Zur Aufzeichnung der Musikdaten auf die Music-CD müssen diese mit einer passenden Kanalkodierung (genauer: Leitungskodierung) kodiert werden. Dabei kommt EFM zur Anwendung.

EFM bedeutet: Jedem Byte wird ein 14 Bit langes Codewort aus einer standardisierten Tabelle zugeordnet. Zwischen diesen 14-Bit-Codewörtern werden drei Trennbits eingefügt. Für CD-Audio wird die Tabelle im Red Book festgelegt.

Auf einer Audio-CD sind die Daten in einer Spur in Form von Vertiefungen (Pits) und dazwischenliegenden Spurabschnitten ohne Vertiefungen (Lands) gespeichert. Ein kurzer Spurabschnitt von ca. 1/3 Mikrometer Länge (eine Bitzelle) entspricht einem Bit. Eine Eins repräsentiert einem Übergang von Pit zu Land oder von Land zu Pit, Nullen repräsentieren keinen Übergang (NRZ-M-Codierung). Um sicherzustellen, dass auch im Übergangsgebiet zwischen zwei 14-Bit-Codewörtern der Mindestabstand von 2 und der Höchstabstand von 10 Nullen (d.h. mindestens 3 und höchstens 11 Bit-Zellenlängen zwischen zwei Übergängen) gewahrt bleibt, werden zwischen den Codewörtern zusätzlich 3 Trennbits eingefügt.
Damit sich Kratzer und Produktionsfehler nicht negativ auf die Lesbarkeit der CD auswirken, sind die Daten mittels Reed-Solomon-Fehlerkorrektur gesichert, so dass Bitfehler erkannt und korrigiert werden können. Warum das datenintensive EFM? Schliesslich bläht EFM ein Byte auf 14 Bit auf und es kommen sogar noch drei Füllbits hinzu, was eine hohe Redundanz bedeutet: → Mit EFM wird den Eigenheiten des Speichermediums (optischen Abtastung, Form und Grösse der Pits) Rechnung getragen. Die EFM stellt sicher, dass sich alle drei bis elf Bitdauern die Polarität des ausgelesenen Signals ändert, dass also nach einer 1 zwei bis zehn 0 folgen. Das geschieht, wenn der Laser in der Spur einen Übergang von einer Vertiefung (Pit) zu einem Abschnitt ohne Vertiefung (Land) passiert oder umgekehrt. Weiterhin wird durch diese Kodierung eine wesentlich einfachere Signalverarbeitung erreicht, da dass Signal der Fotodioden keinen Gleichstromanteil enthält der entstünde, wenn man anstatt z.B. sieben "kurzen" 0 eine "lange" 0 auslesen würde. Die Abschnitte mit/ohne Vertiefungen müssen allerdings lang genug sein, damit der Laser die Veränderung erkennen kann. Würde man ein Bitmuster direkt auf den Datenträger schreiben, würden bei einem alternierenden Signal (10101010…) falsche Werte ausgelesen, da der Laser den Übergang von 1 nach 0 beziehungsweise von 0 nach 1 nicht verlässlich auslesen, ja sogar diese Übergänge gar nicht erst in der notwendigen Präzision in Kunststoff gepresst werden könnten.


7.7 Der Hammingcode

Fast schon an Zauberei erinnert der fehlerkorrigierende Hammingcode. Dazu ein Beispiels eines Hammingcodes, der einen einzelnen Fehler lokalisieren und auch beheben kann:

Schritt-1: Wert kodieren und an Empfänger übertragen

  1. Tabelle mit 2x11 Zellen erstellen
  2. Zellen mit 1..11 durchnummerieren
  3. Die Payload bzw. die 7 Bit des zu übertragenden Buchstaben "H" (=1001000) eintragen. Zelle 1,2,4 und 8 auslassen.
  4. Die Position der Zellen 1..11, in der eine "1" steht, übertragslos addieren.
  5. Die erhaltenen 4 Bit dort in die Tabelle eintragen, wo die 4 Lücken bestehen.

Schritt-2a: Codierter Wert empfangen und auswerten (Ohne Fehler)

  1. Sie haben 11 Bit empfangen. Erstellen sie damit wieder eine Tabelle mit 2x11 Zellen.
  2. Die Position der Zellen 1..11, in der eine "1" steht...
  3. ...übertragslos addieren.
  4. Wenn als Resultat 0000 entsteht, wurde kein Übertragungsfehler festgestellt.

Schritt-2b: Codierter Wert empfangen und auswerten (Mit exakt einem Übertragungsfehler)

  1. Sie haben 11 Bit empfangen. Erstellen sie damit wieder eine Tabelle mit 2x11 Zellen.
  2. Die Position der Zellen 1..11, in der eine "1" steht...
  3. ...übertragslos addieren.
  4. Als Resultat erhalten sie nun 1011.
  5. Diese 1011 deutet auf die fehlerhafte Stelle hin. Man kann nun das Bit "umkehren und die Nachricht ist somit "korrigiert".

7.8 Der Manchestercode (Leitungscode)

Der Manchester-Code ist ein Leitungscode, der bei der Kodierung das Taktsignal erhält. Die Flanken des Signals tragen bezogen auf das Taktsignal die Information. In der Codedefinition nach IEEE 802.3, wie sie bei 10-Mbit/s-Ethernet verwendet wird, bedeutet eine fallende Flanke eine logische Null und eine steigende Flanke eine logische Eins. In jedem Fall gibt es mindestens eine Flanke pro Bit, aus der das Taktsignal abgeleitet werden kann. Ein Nachteil der Manchester-Codierung ist, dass bei der Datenübertragung die benötigte Bandbreite doppelt so hoch ist wie bei der einfachen Binärcodierung.


7.9 Der Strichcode/Barcode EAN-8

Ein Spezialfall stellt der Strichcode dar. Das Bildchen mit den verschiedenbreiten schwarzen und weissen Balken, wie man es heutzutags auf allen Food- und Non-Food-Artikeln antrifft, repräsentiert aber schlussendlich nur eine, im Fall von EAN-8 eine 8-stellige, beim grossen Bruder EAN-13 13-stellige Zahl. Diese 8 oder 13 Zahlen sind vom Produkte-Hersteller oder einer Organisation weiter aufgeschlüsselt wie z.B. in Ländercode, Produktcode, Lotnummer, Datum, Prüfziffer etc. (In der folgenden Theorie besprechen wir den EAN-8-Barcode, der 8 Dezimalzahlen repräsentiert, wovon die letzte eine Prüfziffer ist. Der EAN-13 ist sinngemäss gleich aufgebaut)

Der EAN-8-Barcode setzt sich vermeintlich aus dicken und dünnen Strichen zusammen. Optisch richtig aber technisch leider falsch. Beim EAN-Barcode besteht jedes Zeichen aus 7 gleich grossen Spalten. Je nach Codierung werden diese Spalten gefüllt oder leer gelassen, wobei gilt: 0=Leer 1=Gefüllt

Zum EAN-8-Code gehören auch Zeichensätze + Prüfziffer. Der erste wird für die vier linken «Balken» der zweite für die vier rechten «Balken» verwendet.

Teil-C: «ALPHANUMERISCHE CODES»

8. Alphaumerische Codes

Alphaumerische Codes dienen der Darstellung von Text. Dazu gehören die Buchstaben A..Z, a..z, Satzzeichen wie zum Beispiel ?, !, :, die Zeichen für Nummern 0..9, aber auch semigraphische Zeichen wie Rechtecke, Dreiecke, Kreisflächen etc.

8.1 Der ASCII-Code

Der ASCII-Code (American Standard Code for Information Interchange) ist in seiner Ursprungsversion eine 7-Bit-Zeichenkodierung und wurde bereits damals eingesetzt, wo noch Textnachrichten per Fernschreiber (Telex) übermittelt wurden. Die druckbaren Zeichen umfassen das lateinische Alphabet in Gross- und Kleinschreibung, die zehn arabischen Ziffern sowie einige Interpunktionszeichen (Satzzeichen, Wortzeichen) und andere Sonderzeichen. Der Zeichenvorrat entspricht weitgehend dem einer Tastatur oder Schreibmaschine für die englische Sprache. Die nicht druckbaren Steuerzeichen enthalten Ausgabezeichen wie Zeilenvorschub oder Tabulator, Protokollzeichen wie Übertragungsende oder Bestätigung und Trennzeichen wie Datensatztrennzeichen.

Die 8-Bit ASCII-Tabelle mit den Binär-, Dezimal- und Hexadezimalwerten der 256 Characters (Gelb: Steuerzeichen)

ASCII-Erweiterung gemäss ISO 8859 (ISO: International Organization for Standardization / Internationale Organisation für Normung)

ASCII belegte bekanntlich ursprünglich 7 Bit pro Character (0...127) und wurde später um ein Bit auf 8 Bit (0...255) erweitert. Um den verschiedenen Sprachen gerecht zu werden, wurde der ISO-Standard 8859 definiert, der nun im zweiten Teil des ASCII-Zeichensatz (128...255) deren 16 Sprachzusätze unterscheidet:

  • ISO-Standard 8859-1 = ANSI-ASCII (ANSI: American National Standards Institute)
  • ISO-Standard 8859-1 = Latin-1, Westeuropäisch oder ANSI-ASCI
  • ISO-Standard 8859-2 = Latin-2, Mitteleuropäisch
  • ISO-Standard 8859-3 = Latin-3, Südeuropäisch
  • ISO-Standard 8859-4 = Latin-4, Nordeuropäisch
  • ISO-Standard 8859-5 = Kyrillisch
  • ISO-Standard 8859-6 = Arabisch
  • ISO-Standard 8859-7 = Griechisch
  • ISO-Standard 8859-8 = Hebräisch
  • ISO-Standard 8859-9 = Latin-5, Türkisch
  • ISO-Standard 8859-10 = Latin-6, Nordisch
  • ISO-Standard 8859-11 = Thai
  • ISO-Standard 8859-12 = (existiert nicht)
  • ISO-Standard 8859-13 = Latin-7, Baltisch
  • ISO-Standard 8859-14 = Latin-8, Keltisch
  • ISO-Standard 8859-15 = Latin-9, Westeuropäisch
  • ISO-Standard 8859-16 = Latin-10, Südosteuropäisch

8.2 Der Unicode UTF-8

Der ASCII-Code mit seinen 256 Zeichen genügt den heutigen Anforderungen nicht mehr. Es fehlen z.B. die chinesische Schriftzeichen oder wie wär's mit einem Violinschlüssel? Es muss ein umfangreicherer Zeichencode her, nämlich der Unicode.

  • Der Unicode kann max. 8 Byte lang sein (64 Bit): U+XXXX'XXXX
  • Unicode V2.0 nützt bisher erst 1‘114‘112 verschiedene Zeichen U+0000'0000 bis U+0010'FFFF
  • Die verbreitetste Kodierungsform ist UTF-8 und belegt pro Zeichen max. 4 Byte
  • Das erste Byte eines UTF-8-kodierten Zeichens nennt man dabei Start-Byte, weitere Bytes nennt man Folgebytes. Startbytes enthalten also die Bitfolge 11xxxxxx oder 0xxxxxxx, Folgebytes immer die Bitfolge 10xxxxxx
  • Ist das höchste Bit des ersten Bytes 0, handelt es sich um ein gewöhnliches ASCII-Zeichen, da ASCII eine 7-Bit-Kodierung ist und die ersten 128 Unicode-Zeichen den ASCII-Zeichen entsprechen. Damit sind alle ASCII-Dokumente automatisch aufwärtskompatibel zu UTF-8
  • Ist das höchste Bit des ersten Bytes 1, handelt es sich um ein Mehrbytezeichen, also ein Unicode-Zeichen mit einer Zeichennummer grösser als 127
  • Sind die höchsten beiden Bits des ersten Bytes 11, handelt es sich um das Start-Byte eines Mehrbytezeichens, sind sie 10, um ein Folge-Byte
  • Die lexikalische Ordnung nach Byte-Werten entspricht der lexikalischen Ordnung nach Buchstaben-Nummern, da höhere Zeichennummern mit entsprechend mehr 1-Bits im Start-Byte kodiert werden
  • Bei den Start-Bytes von Mehrbyte-Zeichen gibt die Anzahl der höchsten 1-Bits die gesamte Bytezahl des als Mehrbyte-Zeichen kodierten Unicode-Zeichens an. Anders interpretiert, die Anzahl der 1-Bits links des höchsten 0-Bits entspricht der Anzahl an Folgebytes plus eins, z. B. 1110xxxx 10xxxxxx 10xxxxxx = drei Bits vor dem höchsten 0-Bit = drei Bytes insgesamt, zwei Bits nach dem höchsten 1-Bit vor dem höchsten 0-Bit = zwei Folgebytes
  • Start-Bytes (0xxx xxxx oder 11xx xxxx) und Folge-Bytes (10xx xxxx) lassen sich eindeutig voneinander unterscheiden. Somit kann ein Byte-Strom auch in der Mitte gelesen werden, ohne dass es Probleme mit der Dekodierung gibt, was insbesondere bei der Wiederherstellung defekter Daten wichtig ist. 10xxxxxx Bytes werden einfach übersprungen, bis ein 0xxxxxxx oder 11xxxxxx Byte gefunden wird. Könnten Start-Bytes und Folge-Bytes nicht eindeutig voneinander unterschieden werden, wäre das Lesen eines UTF-8-Datenstroms, dessen Beginn unbekannt ist, unter Umständen nicht möglich
  • Das gleiche Zeichen kann theoretisch auf verschiedene Weise kodiert werden (Zum Beispiel „a“ als 0110 0001 oder fälschlich als 11000001 10100001). Jedoch ist nur die jeweils kürzest mögliche Kodierung erlaubt

UTF-8 Beispiele

UTF-8 Eingabemethoden

  • Notation bei HTML und XML: &#0000; für dezimale Notation bzw. &#x0000; für hexadezimale Notation, wobei das 0000 die Unicode-Nummer des Zeichens darstellt
  • Ab Windows 2000 kann in einigen Programmen (genauer in RichEdit-Feldern) der Code dezimal als Alt+<dezimaler Unicode> auf dem numerischen Tastaturfeld eingegeben werden
  • Ab Microsoft Word 2002 kann Unicode auch hexadezimal eingegeben werden, indem im Dokument <Unicode> oder U+<Unicode> eingetippt wird und anschließend die Tastenkombination Alt+C im Dokument bzw. Alt+X in Dialog-feldern gedrückt wird
  • In Powerpoint: Alt-Taste gedrückt halten und auf dem Zahlenblock den Unicode in Dezimal eingeben. Z.B. Für den Pipe: Unicode in Hexadezimal 007c in Dezimal 124. Somit ALT + 124 (Auf dem Zahlenblock eingeben)
  • Ob das entsprechende Unicode-Zeichen auch tatsächlich am Bildschirm erscheint, hängt davon ab, ob die verwendete Schriftart/Fonttype eine Glyphe für das gewünschte Zeichen (also eine Grafik für die gewünschte Zeichen-Nummer) enthält. WIN: Siehe charmap.exe

Teil-D: «KOMPRESSION»

9. Verlustlose Kompression

Man spricht von verlustfreier Kompression oder Redundanzreduktion, wenn aus den komprimierten Daten wieder alle Originaldaten gewonnen werden können. Das ist beispielsweise bei der Kompression ausführbarer Programmdateien notwendig.
Im Gegensatz dazu könen bei der verlustbehafteten Kompression oder Irrelevanzreduktion die Originaldaten nicht mehr aus den komprimierten Daten zurückgewonnen werden, das heisst, ein Teil der Information geht verloren. Solche Verfahren werden häufig zur Bild- Video- und Audiodatenkompression eingesetzt. Sie finden Informationen zur verlustbehafteten Kompression in den Multimedia-Fachartikeln unter Bildkompression. In diesem ersten Teil werden nun vier verlustlose Komprimierungsverfahren vorgestellt: Huffman, RLC, BWT und LZW.


9.1 Die Huffman-Kodierung

Die Huffman-Kodierung ist eine Form der Entropiekodierung. Sie ordnet einer festen Anzahl an Quellsymbolen jeweils Codewörter mit variabler Länge zu. Der Huffman-Code ist ein VLC (Variable Length Code)

Huffman-Kodierung am Textbeispiel «ERDBEERE»:
Das Wort «ERDBEERE» zählt 8 Buchstaben. Zuerst soll die Häufigkeit der einzelnen Buchstaben ermittelt werden:

Nun erstellt man einen binären Baum: Die am wenigsten häufigen Buchstaben werden zu einem übergeordneten Knoten zusammengefasst
Und so geht das entsprechend weiter bis zuoberst. Die Zahl 8 muss der Anzahl Buchstaben in Wort «ERDBEERE» entsprechen. Danach müssen die Äste des Baums beschriften werden - Nach Links 1 und nach Rechts 0 (Nach Links 0 und nach Rechts 1 wäre auch möglich)

Nun hat man den Huffman-Code für das Wort «ERDBEERE» ermittelt. (Mit nur 14 Bit ein Leichtgewicht gegenüber dem Wort «ERDBEERE» als ASCII-Text mit 8 x 8Bit (=64Bit)

Beim vorangegangenen Beispiel ist nur eine Lösung möglich. Das ändert sich, wenn man der ERDBEERE ein N anhängt, also ERDBEEREN daraus macht. Folgende Lösungen sind nun möglich. Das letzte Beispiel zeigt ein falscher Aufbau des binären Baums.


9.2 RLC/RLE - Run Length Coding/Encoding

Mit Run Length Encoding ist eine Lauflängenkodierung gemeint. Jede Sequenz von identischen Symbolen soll durch deren Anzahl und ggf. das Symbol ersetzt werden. Somit werden nur die Stellen markiert, an denen sich das Symbol in der Nachricht ändert. Effizient bei langen Wiederholungen.

RLE-Bit-Berechnung für die ersten vier Zeilen:
Der Speicherbedarf für das normale Bitmap: 4 Zeilen zu je 20 Pixel = 80Bit

Der Speicherbedarf für das RLE-komprimierte Bild:
Ab erstem Pixel oben links 31 x Weiss,  2 x Schwarz,  11 x Weiss,  3 x Schwarz, 2 x Weiss,  6 x Schwarz,  6 x Weiss,  6 x Schwarz,  1 x Weiss,  8 x Schwarz,  4 x Weiss  ergibt 11 Zahlen oder Farbwechsel.
Die Zahlen in Dualcode:  11111  00010  01011 00011 00010 00110 00110 00001 01000 00100
Zusammenfassend RLE: 11 x 5Bit = 55Bit

Ein paar Gedanken zu Huffman und RLC

Am Beispiel «A N A N A S» soll überlegt werden, was Huffman gegenüber unkomprimiertem ASCII ergibt und ob man mit z.B. RLC noch ein paar Bit "herausquetschen" kann. Die Erkenntnis: Es ist zu prüfen, ob allenfalls eine Kombination von verscheidenen Verfahren eine noch höhere Datenreduktion ergeben kann.


9.3 Die Burrows-Wheeler-Transformation (BWT)

Neben RLE Run-Length-Encoding und Huffman-Codierung ist die Burrows-Wheeler-Transformation (BWT) eine weitere Art, wie Daten verlustlos komprimiert werden können. BWT ist allerdings kein Algorithmus, der Daten direkt komprimiert. Vielmehr besteht seine Aufgabe darin, das Datenmaterial für eine anschliessende effektive Datenreduktion mit z.B. RLC vorzubereiten.

Beispiel für BWT: Das Wort «ERDBEERE» soll mit BWT verlustlos datenreduziert bzw. komprimiert werden.

Und die Rücktransformation:


9.4 Der Lempel-Ziv-Welch-Algorithmus (LZW)

Auch der Lempel-Ziv-Welch-Algorithmus (LZW) ermöglicht es, Daten verlustlos zu komprimieren. LZW wird häufig bei der Datenreduktion von Grafikformaten (GIF, TIFF) verwendet.

Beispiel für LZW: Das Wort «ENTGEGENGENOMMEN» soll verlustlos datenreduziert bzw. komprimiert werden. Die Werte 0 bis 255 sind den ASCII-Zeichen vorbehalten. Die Werte ab 256 sind Indexe, die auf einen Wörterbucheintrag verweisen.

Und die Rücktransformation:

Weitere verlustlose Datenreduktionsverfahren findet man in der entsprechenden Fachliteratur.


10. Verlustbehaftete Kompression bei Bild und Ton

Wenn Daten wie z.B. Texte, ausführbare Programme etc. komprimiert werden sollen, darf das anschliessende Expandieren nicht zu Verlusten führen. Es muss somit ein verlustloses Verfahren gewählt werden. Einige dieser Konzepte wurden im Kapitel "Verlustlose Kompression" vorgestellt. Im Medienbereich (Bild und Ton), wo riesige Datenmengen anfallen, ist das Bedürfnis effizient zu komprimieren besonders hoch. Allerdings genügen die sogenannten verlustlosen Verfahren alleine nicht. Die Medieninhalte müssen vor der eigentlichen Komprimierung speziell aufbereitet werden. Etwa so, wie beim Burrows-Wheeler-Verfahren, wo ein Text durch die Umstellung der Buchstaben in eine für das Run-Length-Coding günstige Anordnung transformiert wird. Diese vorangehende "Medienaufbereitung" hat allerdings den Nachteil, dass sie meist zu Datenverlusten führt: Das heisst: Nach der Komprimierung kann durch das Expandieren nicht mehr das 100% Abbild des Originals erstellt werden. Die Datenverluste unterscheiden sich je nach Komprimierungsverfahren und Komprimierungsintensität. Moderne Verfahren sind aber so clever, dass für den Betrachter kaum Einbussen erkennbar sind (Bsp. MPEG-4, AAC etc.). Im weiteren spielt im Medienbereich auch die Qualität der weitere Verarbeitungskette/Projektion eine Rolle (Bsp. Audio(analog)verstärker, Lautsprecher, Farbtreue des Projektors etc.)

Verlustbehaftete Bildkomprimierung - ein Beispiel:

  1. Originalbild: 1000 Pixel x 540 Pixel, 16.7 Millionen Farben (24Bit)
  2. Reduzierte Bildauflösung: 100 Pixel x 54 Pixel, 16.7 Millionen Farben (24Bit), Dateigrösse 100x kleiner als das Original
  3. Reduzierte Farbauflösung: 1000 Pixel x 540 Pixel, 16 Farben (4Bit), Dateigrösse 6x kleiner als das Original
  4. Graustufenbild: 1000 Pixel x 540 Pixel, 256 Graustufen (8Bit), Dateigrösse 3x kleiner als das Original
  5. Hohe DCT Komprimierung (JPG mit tiefer Qualität): 1000 Pixel x 540 Pixel, 16.7 Millionen Farben, Bildartefakte/Blockbildung!, Dateigrösse 42.8x kleiner als das Original
  6. Tiefe DCT Komprimierung (JPG mit hoher Qualität): 1000 Pixel x 540 Pixel, 16.7 Millionen Farben, Dateigrösse 4.8x kleiner als das Original

Hinweis:

Die weiteren Abschnitte behandeln stufengerecht ein paar ausgewählte Verfahren bei der Kompression von multimedialem Content. Um die Kompression bei Multimedia besser zu verstehen wird empfohlen, sich vorher mit den Grundlagen und Fachbegriffen aus dem Bereich Bild und Ton vertraut zu machen. Dem Thema Multimedia ist daher am Schluss dieser Seite ein eigenes Kapitel gewidmet.


10.1 Bild und Video verlustbehaftet komprimieren

Man spricht von verlustfreier Kompression oder Redundanzreduktion, wenn aus den komprimierten Daten wieder alle Originaldaten gewonnen werden können. Das ist beispielsweise bei der Kompression ausführbarer Programmdateien notwendig. Sie finden Informationen zur verlustlosen Komprimierung von Daten in den Fachartikeln zu Informationstechnik unter Verlustlose Kompression.

Bei der verlustbehafteten Kompression werden irrelevante Informationen entfernt, man spricht auch von Irrelevanzreduktion. Dabei geht ein Teil der Information aus den Originaldaten verloren, sodass aus den komprimierten Daten nicht mehr das Original rekonstruiert werden kann. Verlustbehaftete Kompression findet meist in der Bild-, Video- und Audio-Übertragung Anwendung. Die menschliche Wahrnehmung ist dabei entscheidend, welcher Anteil der Information für den Empfänger entbehrlich ist. Ein populäres Beispiel ist das Audio-Format MP3, das Frequenzmuster entfernt, die der Mensch schlecht oder gar nicht hört. Ebenso bei der Bildwahrnehmung, wo das menschliche Auge für die Helligkeitswerte wesentlich empfindlicher ist, als für die Farbanteile.

10.2 Reduzierung der Bild- oder Farbauflösung

  • Die einfachste verlustbehaftete Datenreduktion erreicht man durch eine kleinere Bildauflösung. Es fragt sich aber, ob der visuelle Verlust noch tragbar ist. Wie viele Bit's können z.B. bei einem S/W-Bild gespart werden, wenn die Auflösung von 100x100 Pixel auf 20x20 Pixel reduziert wird?
  • Eine weitere einfache, effiziente aber verlustbehaftete Datenreduktion erreicht man durch eine niedrigere Farbauflösung. Auch hier fragt sich aber, ob der visuelle Verlust noch tragbar ist. Wie viele Bit's können gespart werden, wenn die Farbauflösung eines Farbbildes von TrueColor, d.h. RGB mit 8 Bit Auflösung pro Farbkanal, auf eine Farbauflösung von 4Bit pro Farbkanal reduziert wird?

Kleinere Bildauflösung (Bild links), kleinere Farbauflösung (Bild rechts)

10.3 Reduzierung der Farbauflösung mittels einer Farbtabelle

Eine weitere Möglichkeit die Datenmenge eines Originalbildes zu reduzieren, besteht in der Verwendung einer individuell zusammengestellten Farbtabelle.

Beim GIF-Format ist es übrigens möglich, eine Farbe als Transparenzfarbe zu definieren. Ausserdem lässt sich bei Verwendung einer Bildsequenz ein animiertes GIF erstellen. Das GIF-Format kann seit Web-Urzeiten von jedem Webbrowser in jeder Browserversion verarbeitet bzw. dargestellt werden.

10.4 Die Farbunterabtastung/Subsampling

Farbunterabtastung (Color Subsampling) bezeichnet bei der Bildaufnahme ein Verfahren, das der Reduzierung der benötigten Datenmenge dient (Reduktion von Speicherplatz bzw. Übertragungsbandbreite). Voraussetzung ist die Verwendung eines geeigneten Farbmodells, das Chrominanz (Farbinformation) und Luminanz (Helligkeitsinformation) getrennt beschreiben kann. Das Das YCbCr-FarbModell, dass die Farbinformation in die Grundhelligkeit Y und die zwei Farbkomponenten Cb (Blue-Yellow Chrominance) und Cr (Red-Green Chrominance) aufteilt, scheint da geeignet.

YUV-Farbmodell (Ähnlich dem YCrCb-Farbmodell):

Die Chrominanz wird mit einer gegenüber der Luminanz reduzierten Abtastrate gespeichert. Der subjektive optische Qualitätsverlust ist gering, da das menschliche Auge Farbe mit geringerer Auflösung wahrnimmt als Helligkeit. Farbunterabtastungen findet man z.B. in der Videotechnik und bei JPEG.

Ohne Unterabtastung trägt jeder Kanal mit je 100% zum Gesamtvolumen (300%) bei. Mit einer Unterabtastung von 4:1:1 bedeutet dies ein Y-Anteil=100%, Cr-Anteil=25%, Cb-Anteil=25% und somit ein Gesamtvolumen von 150%. Der Speicherbedatf hat sich nun halbiert bzw. von 300% auf 150% gesenkt.

  • Subsampling 4:4:4 Keine Unterabtastung / Keine Reduktion in
    Farbkanälen / Studiobereich
  • Subsampling 4:2:2 Unterabtastung in beiden Farbkanälen / 2:1-
    Abtastverhältnis; Norm ITU-R BT.601 / Professionelle
    Videokameras
  • Subsampling 4:1:1 Unterabtastung in beiden Farbkanälen / Die
    Chrominanz-Bandbreite und damit die horizontale
    Farbauflösung ist gegenüber dem 601-Signal halbiert / Digitale
    Consumer Kameras in TV-NTSC
  • Subsampling 4:2:0 Unterabtastung in beiden Farbkanälen,
    alternierend / Reduktion der Farbauflösung in der Vertikalen,
    da Farbdifferenzsignale zeilenweise abwechselnd und nicht in
    jeder Zeile gleichzeitig Übertragen werden / Digitale
    Consumer Kameras in TV-PAL

10.5 JPG-Bildkomprimierung mit DCT (Discrete Cosine Transformation)

Die diskrete Kosinustransformation DCT (Discrete Cosine Transformation) ist eine Transformation der numerischen Mathematik. Sie wird unter anderem für die verlustbehaftete Kompression von Audio- und Bilddaten verwendet. (JPG-Bildformat, AAC-Audioformat)

Die eigentliche Datenreduktion wird durch ein RLC und VLC bewirkt. DCT ist eigentlich nur dafür da, die Pixelwerte auf eine effektive Datenreduktion vorzubereiten:

  • 1. Schritt: Als vorbereitenden Schritt wird das RGB-Bild in seinen Luminanzanteil und den beiden Crominanzanteile umgewandelt. Danach wird die Auflösung in den beiden Chrominanzkanälen reduziert. (Siehe Farbmodelle und Unterabtastung)
  • 2. Schritt: Das Bild (Luminanz- bzw. Chrominanzkanäle) wird nun in 8x8 Pixelblöcke aufgeteilt. Jeder dieser Pixelblöcke wird separat weiterverarbeitet. (Siehe Bild: Originalwerte im 8x8 Block - Die Zahlen entsprechen den Helligkeitswerten des Pixelblocks)
  • 3. Schritt: Diskrete Kosinus Transformation (Siehe Bild: DCT-transformierte Werte). Die 8x8 Wertematrix wird nun vom Bildbereich in den sogenannten Frequenzbereich transformiert. Im Bildbereich prägen Unterschiede in den Helligkeitswerten die Wertematrix, wohingegen im Frequenzbereich die Schnelligkeit der Helligkeitsänderungen entscheidend sind. (Etwas vereinfacht ausgedrückt: Scharfe Bilder ergeben schnelle Helligkeitsänderungen und damit viele hohe und unterschiedliche DCT-Werte, unscharfe langsamere und somit tiefere und weniger unterschiedliche DCT-Werte.)
  • 4. Schritt: Die DCT-transformierten Werte werden nun quantisiert. Unter Quantisierung ist etwa dasselbe zu verstehen, wie das Notenrunden bei Schulprüfungen: Wenn die Schulnote mit einer Genauigkeit von 1/10 festgehalten wird, hat man mehr mögliche Notenwerte als wenn die Note auf 0.5 gerundet wird. Allerdings verliert man mit der gröberen, weil ungenaueren 0.5-er Notenskala auch an Aussagekraft. Dasselbe gilt für die quantisierten DCT-Werte (Siehe Bild: Quantisierte Werte). Bis jetzt hat man allerdings noch keine eigentliche Datenreduktion erreicht.
  • Wie geht's weiter: Abhängig von der Stärke der Quantisierung der DCT-Werte (im Extremfall werden die meisten Werte 0) erhält die 8x8-Matrix eine geeignete Form, für eine anschliesend effiziente RL-Codierung (RLC) und zusaätzlich VL-Codierung (VLC). (RLC und VLC werden übrigens in den Fachartikeln zu Informationstechnik unter Verlustlose Kompression erklärt.)

Noch eine Bemerkung zur diskrete Kosinus Transformation: Im Extremfall, wenn ein 8x8-Pixelblock nur aus einer einzigen Farbe besteht, wird nach der DC-Transformation nur die erste DCT-Koeffiziente links oben einen Wert enthalten und alle anderen 255 Werte werden 0 sein. RLC ist dann besonders wirksam. Im Umkehrschluss: Wenn die Quantisierung sehr stark ausfällt, wird ein 8x8 Pixelblock bei der Rücktransformation nur noch wenige, gleichartige Farbwerte aufweisen. Man nent das Blocking-Effekt.

10.6 Die Quantisierung bei DCT erklärt am Beispiel von Schulnoten

  • 51 unterschiedliche Noten bedeutet 6 Bit pro Note
  • 11 unterschiedliche Noten bedeutet 4 Bit pro Note

Mit nur 11 unterschiedlichen Noten erreicht man eine Speicherersparnis von 33% gegenüber der Variante mit 51 unterschiedlichen Noten. Allerdings ergibt sich auch ein Informationsverlust. Aus den gerundeten Noten ist nicht mehr ersichtlich, dass Nicole fast eine halbe Note höher liegt als Jonas. Ähnlich bei Susi, die zwar nur 1/10 höher liegt, gerundet aber eine um eine halbe Note höhere Bewertung erhält.

10.7 Interframe Komprimierung

Darunter versteht man die Datenreduktion innerhalb einer Bildfolge unter Ausnutzung von Ähnlichkeiten in nacheinander folgenden Bildern (Differenzbilder). Wenig Bewegung bedeutet eine hohe Datenreduktion. Dies ist eigentlich eine verlustlose Komprimierung. Meist wird aber bei einer Interframekomprimierung noch zusätzlich eine verlustbehaftete Komprimierung durchgeführt. Im Vergleich dazu spricht man bei DCT von einer Intraframe-Komprimierung (Komprimierung innerhalb eines Bildes).

10.8 Die GOP-Sequenz

GOP bedeutet Group of Pictures. Damit ist eine Bildgruppe gemeint, die mit einem Schlüsselbild (I-Frame oder Vollbild) beginnt. Danach folgen eine gewissen Anzahl B-Frames und P-Frames, bis wieder eine neue Bildgruppe mit startendem I-Frame folgt.

  • I-Frame: Schlüsselbild, Keyframe, Vollbild: Mit Intraframe-Komprimierung wie z.B. JPG.
  • B-Frame: Bidirektional Differenz-codiertes Einzelbild (Bidirectionally Predictive-Coded): Einzelbild (Frame), das über die Differenz zu vorhergehenden und nachfolgenden Einzelbildern beschrieben wird.
  • P-Frame: Differenzkodiertes Einzelbild (Predictive-Coded Picture): Einzelbild (Frame), das über die Differenz zu vorhergehenden Einzelbildern beschrieben wird (Delta-Kodierung)

Teil-E: «KRYPTOLOGIE»

11. Kryptologie / Kryptografie / Kryptoanalyse

Mit Kryptografie war ursprünglich die Wissenschaft der Verschlüsselung gemeint. Heute umfasst sie allgemein die  Informationssicherheit und die Widerstandsfähigkeit gegen Manipulation und unbefugtes Lesen.

  • Kryptologie: Wissenschaft vom Entwurf, der Anwendung und der Analyse von kryptografischen Verfahren
  • Kryptografie: Wie kann eine Nachricht ver- und entschlüsselt werden?
  • Kryptoanalyse: Wie sicher ist ein Verschlüsselungsverfahren?

Die Akteure in der Krypto-Literatur:

11.1 Blockchiffre und Stromchiffre

Blockchiffre

  • Algorithmus der einen Datenblock von 64 oder 128 Bit mittels Schlüsselwerts verschlüsselt
  • Längerer Nachrichten werden vorerst in Blöcke unterteilt
  • Länge verschlüsselter Block 64 bzw. 128 Bit
  • Typische Schlüssellänge 112, 128 und 168 Bit
  • Beispiele: DES, AES und IDEA

Stromchiffre

  • Symmetrische, kontinuierliche und verzögerungsfreie Ver- oder Entschlüsselung eines Datenstroms
  • Stromchiffre ver- bzw. entschlüsselt Nachrichten Bit für Bit bzw. Zeichen für Zeichen
  • Für Echtzeitübertragungen geeignet (z.B. Mobilfunk)
  • Beispiele: XOR-Verschlüsselung, RC4 (RC4 ist ein in den 80‘er Jahren von Ron Rivest entwickelter Stromchiffre-Algorithmus, der z.B. für eine sichere SSL-Verbindung bzw. Verschlüsselung des Datenstroms bei Webbrowsern sorgt), Scrambling bei 1000Base-T

12. Symmetrische Verschlüsselungsverfahren

Symmetrische Verschlüsselungsverfahren zeichnen sich dadurch aus, dass der Absender die Botschaft mit demselben Schlüssel verschlüsselt, wie der Empfänger, der die Botschaft wieder entschlüsslet.

12.1 ROT-13

Beim 26 Buchstaben zählenden Alphabet hat die ROT-13 Rotationschiffre den Vorteil, dass derselbe Algorithmus zum ver- bzw. entschlüsseln verwendet wedern kann: Verschlüsseln (Buchstabe um 13 Positionen vorwärts und Entschlüsseln (Buchstabe um 13 Positionen vorwärts)

Unterschied zu einer z.B. ROT-3: Hier werden die Buchstaben und drei Positionen verschoben. Allerdings brauchts zwei Funktionen. Nämlich die Verschlüsselung (Buchstabe um drei Positionen vorwärts) und Entschlüsselung (Buchstabe um drei Positionen rückwärts).

12.2 Vigenèreverschlüsselung

Zur Verschlüsselung eines Klartextes wird ein Schlüssel benötigt. Idealerweise ist dieser gleich lang wie der Klartext. Ist der Schlüssel kürzer als der Klartext, wird dieser einfach wiederholt. Die chiffrierten Buchstaben ermittelt man mit dem Vigenère-Quadrat, einer quadratischen Anordnung von untereinander stehenden verschobenen Alphabeten. Dazu sucht man den Kreuzungspunkt der durch den jeweiligen Schlüsselbuchstaben gekennzeichneten Zeile und der Spalte des Quadrats, die oben durch den Klartextbuchstaben gekennzeichnet ist. Der Empfänger benutzt zum Entschlüsseln der Nachricht denselben Schlüssel wie der Absender. Er kann durch Umkehren des Verschlüsselungsverfahren den Klartext zurückgewinnen.

Das komplette Vigenère-Quadrat:

12.3 Die XOR-Stromchiffre

Gerätetechnisch unterscheidet man folgendes:

  • Zeichenorientiert: Es wird jedes einzelne z.B. ASCII-Character behandelt bzw. verarbeitet (Bsp. ROT-Chiffre, Vigenere-Chiffre etc. oder serielle Schnittstelle etc.)
  • Blockorientiert: Es werden ganze Blöcke übertragen (Bsp. Harddisk, Filesystem)
  • Datenstrom: Es wird Bit für Bit behandelt (Bsp. XOR-Stromchiffre)

Bei der Stromchiffre werden Klartext Bit für Bit bzw. Zeichen für Zeichen XOR-ver- bzw. entschlüsselt. Sender und Empfänger benutzen denselben Schlüssel.

Ein grosser Nachteil der XOR-Verschlüsselung
Sind Original und Chiffre bekannt, kann der Schlüssel rekonstruiert und für eine weitere Dechiffrierung verwendet werden. Beispiel:

Korrekte Verwendung:

  • Original 00101001
  • Schlüssel 10011010
  • XOR-Chiffre 10110011

Schlüssel rekonstruieren:

  • Original 00101001
  • XOR-Chiffre 10110011
  • Schlüssel 10011010

12.4 Vor- und Nachteile von symmetrischen Verschlüsselungsverfahren

VORTEILE:

  • Schlüssel sind «kürzer» als Nachricht.
  • Ein sicherer Kanal für einen «kurzen» Schlüssel ist einfacher zu haben als ein sicherer Kanal für eine komplette Nachricht.

NACHTEILE:

  • Sender und Empfänger müssen denselben Schlüssel besitzen.
  • Der Schlüsseltausch benötigt einen sicheren Kanal.
    Falls ein sicherer Kanal vorhanden wäre, könnte ja die Nachricht selbst darüber übertragen werden!
  • Aufwändiges Schlüsselmanagement.
    S=N*(N-1)/2
    S=Anzahl der Schlüssel; N=Anzahl der Teilnehmer
    Die Schlüsselanzahl wächst somit quadratisch!

13. Asymmetrische Verschlüsselungsverfahren

Bei der Public/Privat-Key Kryptografie wird der Schlüssel auf zwei Teilschlüssel aufgeteilt. Das heisst, das jeder Teilnehmer folgendes Schlüsselpaar besitzt:

  • Private-Key bzw. Privater Schlüssel: Dieser dient dem Nachrichten-Empfänger zum Entschlüsseln der Nachricht. Der Private-Key kennt nur der Empfänger und bleibt geheim.
  • Public-Key bzw. Öffentlicher Schlüssel: Dieser dient zum Verschlüsseln einer Nachricht an die Person, die den Public-Key generiert bzw. ihn veröffentlicht hat. Der Public-Key ist jedermann zugänglich.

13.1 Der Schlüsseltausch nach «Diffie-Hellman»

Der Diffie-Hellman-Schlüsseltausch ist ein Protokoll zur Schlüsselvereinbarung. Es ermöglicht, dass zwei Kommunikationspartner über eine öffentliche, abhörbare Leitung einen gemeinsamen geheimen Schlüssel in Form einer Zahl vereinbaren können, den nur diese kennen und ein potenzieller Lauscher nicht berechnen kann. Der dadurch vereinbarte Schlüssel kann anschließend für ein symmetrisches Kryptosystem verwendet werden (z.B. DES Data Encryption Standard oder AES Advanced Encryption Standard). Varianten des Diffie-Hellman-Verfahrens werden heute für die Schlüsselverteilung in den Kommunikations- und Sicherheitsprotokollen des Internets eingesetzt.

Veranschaulichung der Grundidee anhand gemischter Farben:

  • Alice und Bob einigen sich zunächst öffentlich auf die gemeinsame Farbe Gelb.
  • Zudem wählt sowohl Alice wie auch Bob eine eigene geheime Farbe.
  • Bob und Alice mischen nun jeweils die gemeinsame Farbe mit ihrer geheimen Farbe und tauschen diese Farbmischungen über eine öffentliche Leitung aus. Einem Lauscher ist es nicht effizient möglich, aus den öffentlichen Farben Gelb, Beige und Graublau auf die geheimen Farben von Alice und Bob zu schließen.
  • In einem letzten Schritt mischen nun Alice und Bob die Farbmischung ihres Gegenübers mit ihrer eigenen geheimen Farbe. Daraus entsteht wiederum eine neue Farbe, die für beide Kommunikationspartner gleich ist. Ab jetzt haben Alice und Bob für eine weitere Nachrichtenverschlüsselung ein gemeinsames (Farb-)Geheimnis, das ein Lauscher nicht rekonstruieren kann, weil er Alices und Bobs geheime Farbzutaten nicht kennt.

3.2 Das asymmetrische Verfahren «RSA»

(Nur für Mathematikfans!)

RSA gemäss den Erfindern Ronald L. Rivest, Adi Shamir und Leonard Adleman (1977)

Die Rechenvorschrift für die Verschlüsselung der Nachricht: c=ke mod n
Die Rechenvorschrift für die Entschlüsselung der Nachricht: k=cd mod n
Wobei gilt:
c: Ciphertext
k: Klartext
e,n: Public Key des Empfängers
d,n: Secret Key des Empfängers


Die Mathematik ist bei Verschlüsselung und Entschlüsselung dieselbe, die Koeffizienten dagegen sind verschieden. Die Funktion xy mod z ist eine sogenannte Einwegfunktion. Damit ist eine Funktion gemeint, die sich ohne eine Zusatzinformation nur schwerlich umkehren lässt.



13.3 Zahlenbeispiel zum asymmetrischen Verfahren «RSA»

(Nur für Mathematikfans!)

Im Folgenden soll eine Schlüsselberechnung anhand von einem Zahlenbeispiel gezeigt werden:

  1. Alice wählt zufällig zwei Primzahlen p ≠ q, die etwa gleich gross sein sollten und berechnet deren Produkt n=p·q
    Wahl p=11 und q=17; Somit wird n=11*17=187
  2. Danach berechnet Alice x = (p-1) · (q-1)
    x=(11-1)*(17-1)=160
  3. Alice berechnet nun x + 1
    x+1=160+1=161
  4. Der Wert e wird ausgewählt, wobei d ein Teiler aus x+1 sein muss
    Der zweite Teiler aus x+1 ist d. Es muss gelten: d*e=x+1
    Unzulässige Werte von d und e (z.B. d=e) werden als unsicher abgelehnt
    Da 161=7*23 sind 7 und 23 geeignete Kandidaten für e und d
  5. Alice hat nun ihr Schlüsselpaar berechnet:
    n und e sind Public-Key von Alice
    d und n sind Secret-Key von Alice
    n=187, e=7, d=23

Nun wird als Ver- und Entschlüsselungsbeispiel der Klartext in Form der Zahl k=12 gewählt.

  1. Die Verschlüsselung mit dem Public-Key von Alice (e=7, n=187) nach der Formel c=kemod n
    c=127mod 187=177
    Der chriffrierte Wert lautet somit c=177
  2. Die Entschlüsselung mit dem Private-Key von Alice (d=23, n=187) nach der Formel k=cdmod n
    k=17723mod 187=12
    Der erhaltene unverschlüsselte Wert lautet somit k=12
    , was zu beweisen war.

13.4 Bemerkung zur Sicherheit der RSA-Schlüssel

Wie in «3.2 Zahlenbeispiel zum asymmetrischen Verfahren» gezeigt, berechnet sich der Schlüssel unter anderem mit diesem Teilschritt: Alice wählt zufällig zwei Primzahlen p ≠ q, die etwa gleich lang sein sollten und berechnet deren Produkt N = p·q. In einigen Veröffentlichungen wird beschrieben, die Stärke des RSA-Algorithmus basiere auf der Tatsache, dass es schwierig sei, grosse Primzahlen zu faktorisieren. Dies ist ein Schreibfehler, denn Primzahlen allgemein, gross oder klein, haben nur zwei Faktoren. Gemeint ist, dass es schwierig ist, grosse Zahlen zu faktorisieren und der Modulus (p*q) ist eine solche grosse Zahl.
Gebräuchliche Schlüssellängen bei RSA sind: 1024 Bit, 2048 Bit, 3072 Bit, 4096 Bit


13.5 RSA-Schwachstelle → «Kollisionsangriff»

Ein Kollisionsangriff ist ein Angriff auf eine kryptologische Hashfunktion mit dem Ziel, zwei verschiedene Dokumente zu finden, die einen identischen Hashwert ergeben. Sind solche Kollisionen einmal gefunden, bedeutet dies, dass die entsprechende Hashfunktion für kryptografische Anwendungen (Datenverschlüsselung, digitale Signaturverfahren) nicht mehr geeignet ist. Bei Hashfunktionen, die nicht entwickelt wurden, um kryptologischen Anforderungen zu genügen, sind solche Kollisionen oft leicht zu finden. Ein Beispiel hierfür ist die CRC-32-Prüfsumme: Die Wörter "buckeroo" und "plumless" führen beide zum Prüfwert 4ddb0c25. Inzwischen weit fortgeschrittene Kollisionsangriffe haben ergeben, dass die Nutzung von MD5 unsicher ist, insbesondere in solchen Szenarien, in denen der Nutzer nicht die zu signierenden Dateien komplett kontrolliert. Ein 2009 durchgeführter Test des Computermagazins c’t unter Verwendung von GPGPU ermöglicht es einem etwa ein Jahr alten Highend-Spiele-PC mit zwei Nvidia GeForce 9800 GX2 (insgesamt vier Grafikprozessoren), in knapp 35 Minuten eine Kollision zu finden.

Übrigens: Eine aktuell hervorragend starke Kollisionsresistenz besitz der SHA-3-Algorithmus.


13.6 RSA-Schwachstelle → «Preimageangriff»

Einer der naheliegendsten Ansätze besteht darin, ein Dokument zu wählen, für dieses den Hashwert zu berechnen und dann ein zweites Dokument zu suchen, das ebenfalls denselben Hashwert hat. Dieser Ansatz entspricht einem Preimage-Angriff. Beispiel: SHA-1 hat immer eine binäre 160-Bit-Ausgabe, also 2160 mögliche Hashwerte. Dieser Algorithmus muss bei SHA-1 den Test also durchschnittlich 2160 Wiederholungen ausführen, bis er eine Kollision findet. Für einen Rechner, der 1 Milliarde Versuche pro Sekunde schafft, beträgt die Laufzeit 4.6·1031 Jahre.


13.7 RSA-Schwachstelle → «Geburtstagsangriff»

Eine viel höhere Erfolgswahrscheinlichkeit als beim Preimage-Angriff erreicht man mit dem Geburtstagsangriff. Hier wählen wir zufällig eine Anzahl Dokumente, berechnen jeweils die entsprechenden Hashwerte und testen dann, ob unter den errechneten Hashwerten zwei gleich sind. Hierbei ergibt sich analog zum Geburtstagsparadoxon eine unerwartet höhere Erfolgswahrscheinlichkeit.
(Geburtstagsparadoxon: Befinden sich in einem Raum mindestens 23 Personen, dann ist die Chance grösser als 50%, dass zwei oder mehrere dieser Personen am gleichen Tag (ohne Beachtung des Jahrganges) Geburtstag haben.

Für das Beispiel SHA-1 bedeutet dies, dass 1,18·280 Versuche benötigt werden, um mit einer Wahrscheinlichkeit von 50% eine Kollision zu finden. Für einen Rechner, der eine Milliarde Versuche pro Sekunde schafft, beträgt die Laufzeit hier "nur" noch 4.5·107 Jahre.

Der Ablauf:

  1. Mallory erstellt zwei Versionen eines Dokumentes «Guter Text: Alice an Bob» und «Böser Text: Alice an Mallory»
  2. Mallory erstellt von beiden Dokumenten (Gut und Böse) je verschiedene Varianten. Der jeweilige Inhalt wird dabei geringfügig, dh. von Auge kaum erkennbar, abgeändert (zB. Einfügen von Leerschläge etc.)
  3. Mallory sucht «Gut» und «Böse» Varianten mit demselben Hashwert (Die Chance, einen Treffer zu erzielen ist intakt)
  4. Mallory legt Alice die gefundene Variante von «Guter Text» zur Unterschrift vor.
  5. Alice unterschreibt die «Guter Text: Alice an Bob» Variante für Bob.
  6. Mallory trennt nun die Signatur von «Guter Text» ab und fügt sie «Böser Text: Alice an Mallory» an.
  7. «Böser Text: Alice an Mallory» ist nun ebenfalls gültig.

Was lernen wir daraus: Niemals ein fremdes Dokument unterschreiben, auch wenn es im Klartext abgefasst ist, es sei denn, man nimmt vor der Unterzeichnung einige subtile Änderungen vor, wie z.B. Einfügen von Leerzeichen. Damit ändert sich der Haschwert und der Geburtstagsangriff ist gescheitert.


13.8 RSA-Schwachstelle → «Chosen Ciphertext»

Mallory fängt eine an Bob verschlüsselte Nachricht ab und besorgt sich auch Bob's Public-Key. Nun geht Mallory wie folgt vor:

  1. Mallory wählt eine Zufallszahl r, wobei gilt: r<n und r ist teilerfremd zu n
  2. Mallory berechnet RSA-mässig: s=re mod n (e und n sind Bob's Public-Key)
    Dementsprechend wird aber auch die RSA-Umkehrfunktion gelten: r=sd mod n (d und n wären dabei Bob's Private-Key)
  3. Im weiteren berechnet Mallory y=s*C mod n (C ist die an Bob verschlüsselte Nachricht)
  4. Zusätzlich berechnet Mallory t=r-1 mod n
  5. Nun überredet Mallory Bob, die von ihm errechnete Nachricht y digital zu signieren.
  6. Gutmütig wie er ist, signiert nun Bob wie folgt: u=yd mod n (d und n sind Bob's Private-Key)
  7. Nun wird Mallory wieder aktiv und berechnet folgendes:
    t*u mod n = Cd mod n
    Oder anders ausgedrückt:
    Mit t*u mod n erhält Mallory den Wert von Cd mod n, was exakt dem Klartext entspricht, den Bob verschlüsselt erhalten hat. Und dies erreicht er allein mit den ihm bekannten Werten t, u und n.
    Wie konnte dies passieren? Dazu ein paar Mathezeilen:
  8. In t*u mod n wird t durch r-1 mod n ersetzt (Siehe Schritt 4)
  9. Somit erhalten wir: t*u mod n = r-1 mod n * u mod n
  10. Wir ersetzten u durch yd mod n (Siehe Schritt 6)
  11. Somit erhalten wir: t*u mod n = r-1 mod n * (yd mod n) mod n
  12. Das mod n rechts aussen können wir uns auch sparen.
    Somit gilt: t*u mod n = r-1 mod n * yd mod n
  13. Nun kommt eine Modul-Rechenregel zum Einsatz: Nämlich die Homomorphieregel:
    Somit erhalten wir: t*u mod n = r-1 * yd mod n
  14. Wir ersetzen nun y durch s*C mod n (Siehe Schritt 3)
  15. Wir erhalten dadurch: t*u mod n = r-1 * (s*C mod n)d mod n
  16. Etwas umgeformt ergibt dies: t*u mod n = r-1 * sd mod n *Cd mod n
  17. Nun ersetzen wir sd mod n durch r (Siehe Schritt 2)
  18. Wir erhalten dadurch: t*u mod n = r-1 * r * Cd mod n
  19. Da r-1 * r=1 ergibt erhalten wir neu: t*u mod n = Cd mod n

Was lernen wir daraus: Niemals irgendwelche binären Dateien unbekannten Inhalts mit dem eigenen privaten Schlüssel unterschreiben. Es könnte sich um einen Chosen-Ciphertext-Angriff handeln. (Man in the middle-Attack)


13.9 Das Verschlüsselungsverfahren in der Übersicht


13.10 Hybride Verfahren

Symmetrische Verschlüsselungsverfahren haben das bereits besprochene Problem des Schlüsseltauschs und Schlüsselmanagements, das bei den asymmetrischen Verfahren so nicht besteht. Allerdings benötigen symmetrische Verfahren weniger Rechenzeit zur Erstellung des Chiffretexts als rein asymmetrische Verfahren. Darum liegt es auf der Hand, dass in einem hybriden Verfahren die Vorteile der beiden Verfahren genutzt werden:

  • Asymmetrisches oder Public-Key-Verfahren für Schlüsselmanagement, zB. RSA
  • Symmetrisches Verfahren zum Versenden der eigentlichen Nachricht, zB. RC4, DES, AES

14. Digitale Signatur mit «RSA»

Nicht immer ist es das Ziel, eine Nachricht zu verschlüsseln. Oftmals besteht auch das Bedürfnis, die Authentizität, Integrität, Verbindlichkeit etc. einer Nachricht zu erfahren, wie z.B:

  • wer in meinem E-Shop bestellt hat
  • wer mir diese oder jene E-Mail zugestellt hat
  • ob wirklich der Absender das geschrieben hat, was ich da nun lese
  • woher das Applet stammt, das ich gerade auf meinen PC lade
  • ob es sich bei dem Update wirklich um das richtige und unmanipulierte Original handelt
  • wohin meine Kreditkartennummer übermittelt wird
  • wer bei einer Wahlveranstaltung gerade seine Stimme abgegeben hat
  • ob der Inhalt von “www.admin.ch” wirklich von unserer Regierung stammt

Dazu kann mit RSA dasselbe Verfahren genutzt werden, wie bei der Verschlüsselung von Nachrichten: Die digitale Signatur mit RSA.

Ausgehend von seinem Grundprinzip ist das Internet nicht sicher:

  • Mitlesen von Daten (Sniffing)
  • Vortäuschen falscher Identitäten (Spoofing)
  • Angriffe auf die Verfügbarkeit (Denial-of-Service)
  • Übertragen von Programmen mit Schadfunktion (Viren, Würmer...)
  • Menschliches Fehlverhalten (Preisgabe von geheimen Daten)

Das möchten wir erreichen:

  • Authentisierung - Sicherstellung der Identität eines Kommunikationspartners
  • Vertraulichkeit - Zugänglichkeit der Nachricht nur für bestimmten Empfängerkreis
  • Integrität - Schutz vor Verfälschung von Nachrichten bei der Übermittlung
  • Autorisierung - Prüfung der Zugriffsberechtigung auf Ressourcen
  • Verfügbarkeit - Schutz vor Datenverlust, Sicherstellung des laufenden Betriebs
  • Verbindlichkeit - Sicherer Nachweis der Absendung bzw. des Empfangs

Wozu soll die digitale Signatur dienen?

  • Sichere Identifizierung des Absenders eines Dokumentes
  • Sicherheit vor nachträglichen Manipulationen des Dokumentes
  • Elektronisch signierte Dokumente sind mit unterschriebenen Papierdokumenten gleich gesetzt
  • Ist ein Prüfwert einer Information
  • Die Digitale Signatur hat die Aufgabe einer Unterschrift und eines Siegels

14.1 Die digitale Signatur mit «RSA» in der Übersicht

Wesentlicher Ablauf:

  • Der Inhalt der Nachricht wird auf eine eindeutige Kenngrösse abgebildet. Dazu bedient man sich eines Hash-Algorithmus
  • Der Hash-Wert wird mit dem privatem Schlüssel verschlüsselt und zur Nachricht hinzugefügt
  • Der Empfänger kann mit Hilfe des öffentlichen Schlüssel des Senders prüfen, ob die Information wirklich vom Absender stammt und nicht verändert wurde

14.2 Der Hash-Wert

  • Der Hashwert bildet einen beliebig langen Nachrichtentext auf einen Wert vorgegebener, kurzer Länge an (Hashwert, Prüfsumme)
  • Aus dem Hashwert kann die ursprüngliche Nachricht nicht errechnet werden (Irreversibilität)
  • Die Konstruktion von Nachrichten mit identischem Hashwert muss praktisch unmöglich sein
  • Die zufällige Übereinstimmung von Hashwerten beliebiger Nachrichten ist sehr unwahrscheinlich (Kollisionsresistenz, Integrität prüfbar)

15. PGP - Pretty Good Privacy

PGP ist ein von Phil Zimmermann entwickeltes Programm zur Verschlüsselung und Signieren von Daten und arbeitet auf hybrider Basis. Es benutzt ein PrivateKey/PublicKey-Verfahren wie bei RSA. PGP basiert dabei auf dem sogenannten Web of Trust, bei dem es keine zentrale Zertifizierungsstelle gibt, sondern ein Vertrauensnetzwerk, das von den Benutzern selbst verwaltet wird. Mit PGP kann man wahlweise eine Nachricht signieren, verschlüsseln oder signieren und verschlüsseln.

Um von IT-Multis unabhängig zu bleiben, wurde 1998 der OpenPGP-Standard entwickelt. Das unter der GNU-GPL stehende Programm GnuPG bzw. GPG4WIN ist wiederum eine Implementierung von OpenPGP. GPG4WIN unterstützt neben persönlichen OpenPGP-Schlüsselpaaren (Dezentral, Web-of-Trust) auch X.509-Schlüsselpaare (Zentrale Zertifizierungsinstanz, CA). Die beiden Schlüsselvarianten sind untereinander aber nicht kompatibel!

OpenPGP: Sowohl Private/PublicKey als auch verrschlüsselte Nachricht sind ASCII-Dateien (.asc)

     Beispiel eines öffentlichen OpenPGP-Schlüssels (Auszug): 
     -----BEGIN PGP PUBLIC KEY BLOCK----- 
     Version: GnuPG v2 
     mHjzBFYjc. 
     ... 
     -----END PGP PUBLIC KEY BLOCK-----
	  

    Beispiel eines privaten OpenPGP-Schlüssels (Auszug):
    -----BEGIN PGP PRIVATE KEY BLOCK-----
    Version: : GnuPG v2
    wqdsf
    ...
    -----END PGP PRIVATE KEY BLOCK-----
	

    Beispiel einer OpenPGP-verschlüsselten Nachricht (Auszug):
    -----BEGIN PGP MESSAGE-----
    Charset: utf-8
    Version: GnuPG v2
    Qqvms5xQ160
    ...
    -----END PGP MESSAGE-----
(Tipp: Wenn sie in gpg4win/Kleopatra Schlüssel exportieren oder verschlüsselte Nachrichten erstellen, erhalten sie Dateien, die kryptisch benannt sind wie z.B.
«CD4C2D46582379E586CD29A26C423DAA26C49EFE.asc» Die Endung asc ist ein Hinweis dafür, dass es sich um eine ASCII-Datei handelt, die mit einem Texteditor wie z.B. Notepad++ geöffnet werden kann. Damit lässt sich, wie sie nun wissen, zumindest feststellen, ob die untersuchte Datei ein PrivateKey, PublicKey oder eine verschlüsselte Nachricht ist. Welcher Person diese zuzuordnen ist, bleibt allerdings verborgen. Darum empfiehlt es sich, den Dateinamen entsprechend umzubenennen, wie z.B. FelixMusterPublicKey.asc.)

15.1 Praxis: GPG4WIN installieren

GPG4WIN ist eine Free-Windows-Variante von GnuPG bzw. OpenPGP. (PGP wäre übrigens die kommerzielle Variante.)
GPG4WIN beinhaltet den GnuPG-Zertifikatsmanager Kleopatra. Mit diesem kann man neue Schlüsselpaare erstellen und bestehende importieren und verwalten.
Im weiteren ist es in Kleopatra möglich, Nachrichten zu verschlüsseln und/oder zu signieren.
Bei diesem ersten Schritt muss noch nicht unbedingt ein Schlüsselpaar erzeugt werden, das geht später immer noch. Falls doch, empfiehlt es sich, einen Test-EMail-Account bereit zu halten.
Hier finden sie GPG4WIN: www.gpg4win.de
(Tipp: GPG4WIN kann bei Sicherheits- und anderen Bedenken auch auf einer virtuelle Windows-Maschine (vmWare) installiert werden.)


15.2 Praxis: Schlüsselpaar mit GPG4WIN/Kleopatra erstellen

  1. Starten sie nun den gpg4win-Zertifikatsmanager «Kleopatra».
  2. Falls das bei der Installation von gpg4win noch nicht geschehen ist, erzeugen sie nun ihr persönliches Schlüsselpaar unter «Datei/Neues Zertifikat/Persönliches OpenPGP-Schlüsselpaar erzeugen».
    Tipp: Verwenden sie dazu eine Test-E-Mail-Adresse.
    Hinweis: Alternativ wäre auch ein X.509-Schlüsselpaar denkbar. Dazu müsste man aber eine Beglaubigungsstelle einbeziehen, was den Rahmen dieser Übung sprengen würde.
  3. Beim Erzeugen eines Schlüsselpaars wird von ihnen eine sogenannte Passphrase verlangt. Dies ist ein Passwort, dass sie später beim Erstellen und Öffnen einer verschlüsselten Nachricht eingeben müssen. Diese Passphrase also keinesfalls vergessen und niemals weitergeben.
  4. Exportieren sie nun Ihren öffentlichen Schlüssel. Versichern sie sich, dass es sich wirklich um den PublicKey und nicht den PrivateKey handelt. Im Zweifelsfall überprüfen sie mit einem Texteditor das ASC-File. In der ersten Zeile sollte stehen:
    -----BEGIN PGP PUBLIC KEY BLOCK-----
  5. Benennen sie Ihr PublicKey wie folgt: Vorname_Nachname_PublicKey.asc
  6. Kleopatra verwaltet die öffentlichen Schlüssel ihrer Kommunikationspartner. Dazu müssen sie diesen aber zuerst in Kleopatra einpflegen. Tauschen sie innerhalb der Klasse ihre PublicKeys aus. Dies kann z.B. über das Internet geschehen. Im Schulbetrieb vertauen wir darauf, dass der Schlüssel auch von der Personen stammt, auf die der Dateiname hinweist. Ausserhalb der Schule ist das selbstverständlich ein NoGo.


15.3 Praxis: Test-EMail-Account einrichten

Beim Austesten der E-Mail-Verschlüsselungstechniken besteht die Gefahr, aus Unachtsamkeit seinen offiziellen E-Mail-Account zu schädigen. (Mails versehentlich vom Mailserver löschen etc.). Darum empfiehlt es sich, einen Test-E-Mail-Account bei einem Provider ihrer Wahl oder z.B. bei Swisscom einzurichten. (Beachten sie: Einige Provider möchten gerne ihre Identität über ihre Mobilenummer, Festnetznummer oder dem Postweg überprüfen.)

Der Zugang zum Swisscom E-Mail-Account lautet:

  • Name: Ihr Vorname und Nachname
    E-Mail-Adresse: xyz@bluewin.ch (Was halt noch frei ist ;-)
    Passwort: ... (Achtung: Nicht das Swisscom-Portal-Passwort sondern das Swisscom-Mail-Passwort verwenden!)
  • SSL/TLS: Jeweils aktiviert.
  • Posteingangsserver:
    IMAP4: imaps.bluewin.ch (Port 993)
    POP3: pop3s.bluewin.ch (Port 995)
  • Postausgangsserver:
    SMTP: smtpauths.bluewin.ch (Port 465)
Überprüfen Sie Ihren neuen E-Mail-Account, indem Sie Sich gegenseitig E-Mails zuschicken. Sie können dazu z.B. Swisscom-Webmail benutzen. Swisscom bietet auf seiner Webseite übrigens entsprechende Hilfestellung. Z.B. auch beim Einrichten Ihres Kontos in Outlook, Thunderbird, auf Tablets, Smartphones etc.


15.4 Praxis: Mailclient Thunderbird einrichten

Mozilla's Thunderbird ist OpenSource und neben Microsoft Outlook eines der am weitest verbreiteten Programme zum Lesen von News und E-Mails (E-Mail-Client). Aus diesem Grund sollen Sie nun Thunderbird auf Ihrem Notebook installieren. In den nächsten Übungen werden Sie Thunderbird im Zusammenhang mit E-Mail-Verschlüsselung verwenden. Installieren Sie nun Thunderbird auf Ihrem Notebook und richten Sie Ihr Test-E-Mail-Konto darin ein. Ihre EMail-Zugangsdaten (Mail-Eingangs/Ausgangserver etc.) sollten Ihnen hoffentlich bekannt sein.
Hier finden Sie Thunderbird: www.thunderbird.net

Die Konfigurationsschritte:

  1. Thunderbird-Einrichtung starten → Bestehende EMail einrichten.
  2. Nachdem sie Name und EMail-Adresse eingegeben haben, können sie mit «Manuell einrichten» ihre Mailserver-Werte direkt eingeben.
  3. Wählen sie: IMAP (Nachrichten auf dem Server speichern)
  4. Schliessen sie die Kontoerfassung ab. Wenn Thunderbird den EMail-Account nicht erfolgreich prüfen kann, wurden falsche Angaben gemacht. (Stimmt der Username, Passwort, Eingangs-/Ausgangsserver, Port-Nr. etc.?)

15.5 Praxis: Mailclient Thunderbird einsetzen

Bevor Thunderbird für die EMail-Verschlüsselung bzw. Signierung eingesetzt werden kann, müssen noch ein paar Konfigurationen erledigt werden. Wie bei PGP4WIN/Kleopatra auch, stehen hier beide Schlüsselvarianten OpenPGP und S/MIME-X.509 zur Verfügung. Wir beschränken uns wiederum auf OpenPGP-Schlüssel.

  1. In der oberen Menüzeile rechts aussen (Drei waagrechte Striche übereinander) → Anwendungsmenü von Thunderbird anzeigen
  2. Extras → OpenPGP Schlüssel verwalten: Hier können sie ihr eigens Schlüsselpaar oder PublicKey ihrer Kommunikationspartner importieren.
    Datei → Öffentliche(n) Schlüssel aus Datei importieren
    Datei → Geheime(n) Schlüssel aus Datei importieren
    Die Schlüssel können z.B. vorher aus Kleopatra exportiert werden.
    Sie können unter «Erzeugen» aber auch ein neues Schlüsselpaar erstellen.
  3. Nun müssen sie überprüfen, ob ihrem EMail-Account bereits ein Schlüssel zugewiesen wurde: Anwendungsmenü von Thunderbird → Konten-Einstellungen → Ende-zu-Ende-Verschlüsselung: Hier sollte unter OpenPGP angezeigt werden: Thunderbird verfügt über 1 persönlichen OpenPGP-Schlüssel für ...
    Dies funktioniert aber nur, wenn sich ihr persönlicher, in Thunderbird importierter Schlüssel auch auf ihre EMail-Adresse bezieht. Im Zweifelsfall generieren sie ein neues, persönliches Schlüsselpaar in Thunderbird, dass sie nun ihrem EMail-Account zuweisen können.
  4. Achten sie darauf, dass der Schlüssel auch tatsächlich verwendet wird. Es darf nicht die Option «Keiner - OpenPGP für diese Identität nicht verwenden» selektiert sein, sondern der Schlüssel darunter!
  5. In diesem Menü lässt sich auch einstellen, ob standardmässig EMails verschlüsselt und/oder signiert werden sollen. Darauf verzichten wir vorerst einmal.
Falls sie bereits PublicKeys von Klassenkameraden imporiert haben, können sie mit dem Verschlüsseln und Signieren loslegen:
  1. Verfassen → EMail-Adresse des Empfängers eingeben.
  2. Prüfen sie unter Sicherheit → Verschlüsselungstechnologie ob auch OpenPGP aktiv ist.
  3. Da sie EMails nicht automatisch verschlüsseln, aktivieren sie n un dies für die aktuelle EMail.
    Zur Auswahl stehen:
    Sicheheit → Nur mit Verschlüsselung senden
    Sicheheit → Nachricht unterschreiben
    Meinen öffentlichen Schlüssel anhängen
  4. Zur Kontrolle: Unten links erscheint OpenPGP und ein entsprechendes Icon.


16. Public Key Infrastruktur PKI

Mit Public-Key-Infrastruktur (PKI) bezeichnet man in der Kryptologie ein System, das digitale Zertifikate ausstellen, verteilen und prüfen kann. Die innerhalb einer PKI ausgestellten Zertifikate werden zur Absicherung rechnergestützter Kommunikation verwendet.

16.1 Der ITU-T-Standard X.509

Die Alternative zur dezentralen Schlüsselverwaltung (Web-of-Trust), wie wir sie bei OpenPGP angetroffen haben, ist eine zentrale, hierarchische Verwaltung. X.509 ist dabei ein ITU-T-Standard für eine Public-Key-Infrastruktur zum Erstellen digitaler Zertifikate. Das X.509-Zertifikat beweist, dass desen Besitzer seine Identität bzw. Glaubwürdigkeit von einer CA (=Certification Authority) bescheinigen hat lassen. Das heisst: Personenangaben werden mit dem Schlüsselpaar gekoppelt (Elektronischer Ausweis), ausgestellt von einer vertrauenswürdigen Instanz TC (=Trust Center) oder CA. Die Schlüssel unterscheiden sich von denen bei OpenPGP!

Siehe auch TLS-Zertifikate und S/MIME im nächsten Kapitel «Sicherheit im Internet»!

16.2 Bestandteile einer PKI

  • Digitale Zertifikate
  • Zertifizierungsstelle (Certificate Authority, CA)
  • Registrierungsstelle (Registration Authority, RA)
  • Zertifikatsperrliste (Certificate Revocation List, CRL)
  • Verzeichnisdienst (Directory Service)
  • Validierungsdienst (Validation Authority, VA)
  • Dokumentationen: CP (Certificate Policy), CPS (Certification Practice Statement), PDS (Policy Disclosure Statement)
  • Subscriber: Inhaber von Zertifikaten
  • Participant: Nutzer von Zertifikaten

16.3 Aufgaben von TC’s bzw. CA's (X.509)

  • Zertifikate ausstellen - Korrekte Identifikation des Teilnehmers,  Zertifizieren von User, Server, Sub CA's. Erstellung des Zertifikates durch digitale Signatur über Identifikationsdaten  und öffentlichen Schlüssel eines Teilnehmers.  Bei Ausgabe eines Zertifikates an einen Teilnehmer ist dieser über Funktionalität  und Gefahren von zertifizierten Signaturschlüsseln zu unterrichten.
  • Veröffentlichen der Public-Keys der User und Publizieren eigenes Zertifikat
  • Verwalten bzw. Archivierung angelaufener Zertifikate
    Zertifikate zurückziehen oder für ungültig erklären
    Festlegung der Gültigkeitsdauer von Zertifikaten
  • Zeitstempeldienst - Absicherung im Falle des Diebstahls des geheimen Schlüssels. Nachweis einer zeitpunktsbezogenen Willensbekundung. Nachweis und Sicherheit, dass die digitale Signatur nicht nach Ablauf der Gültigkeit des Zertifikates erstellt wurde.

17. Sicherheit im Internet

Gerade im Internet wird eine sichere Verschlüsselung immer wichtiger, weil Gefahr durch Lauschangriffe oder gar Datenverfälschung droht. Zum einen soll ein Webseitenaufruf ermöglicht werden, der z.B. die Eingaben von Benutzernamen und Passwort in ein Webformular vor fremden Augen versteckt, anderseits soll die Echtheit von Daten überprüft werden können.

17.1 TLS + HTTP = HTTPS → Sichere Webseiten

Hybrides Verschlüsselungsprotokoll zur sicheren Datenübertragung im Internet:

  • SSL = Secure Sockets Layer (Veraltet! Wurde durch TLS abgelöst)
  • TLS = Transport Layer Security (Transportschichtsicherheit)
TLS liegt zwischen der Transportschicht (z.B. TCP via Port 443) und der Applikationsschicht (z.B. HTTP). Man nennt dieses Gespann dann HTTPS. HTTPS ist also kein eigenes Protokoll sondern die Kombination von TLS mit HTTP. HTTPS ist im Webbrowser bereits "integriert", muss also nicht extra nachinstalliert werden. Als Software zum Betrieb eines HTTPS-fähigen Webservers wird eine SSL-Bibliothek wie OpenSSL benötigt. Das digitale Zertifikat für SSL, das die Authentifizierung ermöglicht (Server und die Domain sind eindeutig), ist vom Server bereitzustellen und kann z.B. bei einer Zertifizierungsstelle erworben werden.
Der Client-Browser ruft eine sichere Webseite so auf: https://url. Ist eine HTTPS-Verbindung etabliert, wird in der Statusleiste des Webbrowsers ein Schloss- oder Schlüssel-Symbol eingeblendet oder die Adresszeile in ihrer Farbe geändert.

So erfolgt ein Standard-SSL-Handshake, wenn ein RSA-Algorithmus zum Schlüsselaustausch verwendet wird:
  1. Client Hello: Informationen, die der Server benötigt, um mit dem Client mithilfe von SSL zu kommunizieren. Dies beinhaltet die SSL-Versionsnummer, Verschlüsselungseinstellungen und sitzungsspezifische Daten.
  2. Server Hello: Informationen, die der Server benötigt, um mit dem Client mithilfe von SSL zu kommunizieren. Dies beinhaltet die SSL-Versionsnummer, Verschlüsselungseinstellungen und sitzungsspezifische Daten.
  3. Authentifizierung und Pre-Master Secret: Der Client authentifiziert das Serverzertifikat. (z.B. Common Name/Datum/Aussteller). Der Client (abhängig von der Verschlüsselungssoftware) erstellt den Pre-Master-Secret-Wert für die Sitzung, verschlüsselt ihn mit dem öffentlichen Schlüssel des Servers und sendet den verschlüsselten Pre-Master-Secret-Wert an den Server.
  4. Entschlüsselung und Master Secret: Der Server entschlüsselt den Pre-Master-Secret-Wert mithilfe seines privaten Schlüssels. Sowohl Server als auch Client führen Schritte aus, um den Master-Secret-Wert mithilfe des vereinbarten Verschlüsselungsverfahrens zu generieren.
  5. Verschlüsselung mit Sitzungsschlüssel: Client und Server tauschen Meldungen aus, um mitzuteilen, dass zukünftige Nachrichten verschlüsselt werden.

Im Webbrowser vorinstallierte Zertifikate

Gemäss der ursprünglichen Auslegung soll der Client-Browser nach Anwahl der HTTPS-Adresse dem Anwender zuerst das Zertifikat anzeigen. Dieser entscheidet nun, ob er dem Zertifikat für diese Sitzung vertraut, es evt. auch permanent speichert, gegebenenfalls nach Prüfung über die angegebenen Links. Andernfalls wird die HTTPS-Verbindung nicht hergestellt. Um diese für Unkundige eventuell irritierende Abfrage zu vermeiden, wurde mit der Zeit eine Reihe von Root-Zertifikaten von den Browserherstellern akzeptiert, die schon bei der Installation eingetragen werden. Webseiten, die entsprechende Zertifikate haben, werden dann, ebenso wie davon abgeleitete Unter-Zertifikate, bei Aufruf ohne Nachfrage akzeptiert. Ob ein Root-Zertifikat dem Browser bekannt ist, hängt von der Browser-Version ab. Zudem wird die Liste der Zertifikate teils auch online im Rahmen der Systemaktualisierung auf den neuesten Stand gebracht.


17.2 TLS-Zertifikate

Ein digitales Zertifikat bestätigt bestimmte Eigenschaften von Personen oder Objekten. Dessen Authentizität und Integrität kann durch kryptografische Verfahren geprüft werden.
Folgende TLS Zertifikatsarten werden unterschieden:

  • Domain Validated
  • Organization Validated
  • Extended Validation
Zertifizierungsstellen: (Auswahl)
  • https://letsencrypt.org/de: Bietet seit 2015 kostenlose TLS-Zertifikate an.
  • http://www.cacert.org: Ist eine gemeinschaftsbetriebene, nichtkommerzielle Zertifizierungsstelle. CAcert stellt für jedermann kostenfrei X.509-Zertifikate für verschiedene Einsatzzwecke aus und soll eine Alternative zu den kommerziellen Zertifizierungsstellen sein, die zum Teil recht hohe Gebühren für ihre Zertifikate erheben.
  • https://www.verisign.com: Ist ein kommerzieller Anbieter aus den USA.
  • https://www.globalsign.com: Ist ein kommerzieller Anbieter aus Japan.
  • https://www.quovadisglobal.ch: Ist ein kommerzieller Anbieter aus der Schweiz.
  • Weitere Anbieter aus der Schweiz sind z.B.: Swisscom und SwissSign (Schweizer Post).

17.3 Sichere Verbindung zum Mailserver

Was Sie beim Einrichten eines E-Mail-Clients beachten sollten: Beim Abfragen und Verschicken von E-Mail's sollte man auch an die Verbindungssicherheit denken: Unverschüsselt können Sie auf dem Transportweg (Mail-Client zu Mail-Server) leicht abgehört werden. Darum ist es von Vorteil, eine Verschlüsselungsmethode wie SSL/TLS einzusetzen, sofern dies von Ihrem Mail-Provider auch angeboten wird. Allerdings muss man wissen, dass es sich dabei "nur" um eine Transportverschlüsselung handelt. Das bedeutet, dass Ihre EMails auf dem Weg zum Mailserver nicht eingesehen werden können. Auf dem Mailserver liegen Ihre EMails allerdings unverschlüsselt vor, ausser Sie bedienen sich einer Mailverschlüsselung. OpenPGP und S/MIME sind dabei die beiden wichtigsten Standards für eine E-Mail-Verschlüsselung.


17.4 Sichere E-Mail’s verschicken mit S/MIME

S/MIME = Secure Multipurpose Internet Mail Extensions
Dies ist ein Standard für die Verschlüsselung und das Signieren von MIME-gekapselter E-Mail durch ein hybrides Kryptosystem (Asymmetrisch/Symmetrisch). S/MIME wird von den meisten modernen Mailclients unterstützt. Es erfordert X.509-basierte Zertifikate für den Betrieb.
Schlüsselvarianten: S/MIME ist die Alternative zu OpenPGP!

S/MIME-Zertifikate

  • X.509 ist ein Standard für eine Public-Key-Infrastruktur (PKI) zum Erstellen digitaler Zertifikate.
  • Mit Public-Key-Infrastruktur (PKI) bezeichnet man in der Kryptologie ein System, das digitale Zertifikate ausstellen, verteilen und prüfen kann. Die innerhalb einer PKI ausgestellten Zertifikate werden zur Absicherung rechnergestützter Kommunikation verwendet.
  • Die Anbieter von kostenpflichtigen S/MIME-Zertifikaten für sichere E-Mail-Kommunikation klassifizieren diese meist in drei Klassen. Dabei sichert bei Klasse 1 die Zertifizierungsstelle (CA) die Echtheit der E-Mail-Adresse zu und nur diese ist Teil des Zertifikats. Bei Klasse 2 wird zusätzlich der zur E-Mail-Adresse gehörende Name in das Zertifikat mit aufgenommen, sowie die Organisation/Firma. Diese Daten werden mithilfe von Drittdatenbanken und Ausweiskopien verifiziert. Bei Zertifikaten der Klasse 3 muss der Antragsteller sich persönlich ausweisen.
  • Manche Unternehmen und nichtkommerzielle Organisationen bieten kostenlose S/MIME-Zertifikate an. Es können dabei nach einer Registrierung mehrere Zertifikate erstellt werden, die aber erst nach einer gewissen Anzahl von Identitätsnachweisen den Namen beinhalten. Diese können durch Mitglieder in einem Web of Trust oder anderen vertrauenswürdigen Stellen wie Rechtsanwälten oder Wirtschaftstreuhändern erfolgen. Grundsätzlich zerstört eine Ausstellung von Zertifikaten durch Anbieter ohne Identitätsüberprüfung des Antragstellers den Grundgedanken des sicheren Informationsaustauschs zwischen zwei Computern im Netz. So ist es bei einigen Zertifikatsausstellern tatsächlich möglich, mit erfundenen Betreiberangaben ein Zertifikat für eine völlig fremde Website zu erhalten. Der Benutzer würde über ein Umleiten der Informationsübertragung beispielsweise durch den Browser nicht mehr informiert, wenn die Zertifizierungsstelle durch den Browserhersteller von vornherein als vertrauenswürdig eingestuft wurde.

Teil-F: «MULTIMEDIA»

18. Grundlagen zu Bild und Ton

18.1 Historischer Rückblick

  • Von der Camera Obscura zur Digitalen Spiegelreflexkamera DSLR: Das lichtempfindliche Fotomaterial wird von lichtempfindlichen elektronischen Bildaufnahmeelementen (CCD, CMOS-Sensor) abgelöst. Wichtige Kriterien sind die Bildauflösung und die Komprimierung.
  • Von Grammophon und Schallplatte zum Musikplayer im Smartphone: Das analoge Verfahren mittels Schallplatte bzw. magentischem Band wird später vom digitalen Datenträger Music-CD und zuletzt von der Datencloud abgelöst. Für die digitale Variante müssen die akustisch erzeugten Schallwellen zuerst mittels A/D-Wandlung (Samplingrate, Quantisierung) in eine vom Rechner verarbeitbare Form gebracht werden.
  • Von der Serienfotografie zum 3D-Film: Ruckelfreie Bewegung erhält man ab ca. 12 Bilder/sec. Mehr als 50 Bildwiederholungen/sec. werden benötigt, um kein Bildflackern mehr zu erkennen. Film verwendet übrigens nur 24 Bilder/sec. Darum muss jedes Kinofilmbild zweimal an die Leinwand projiziert werden.
  • Vom Röhrenbildschirm zum LCD-Flatscreen: Zur Zeit der Röhrentechnik war die geforderte Bildwiederholfrequenz von 50 Hz. nur mit einem Trick, dem Halbbildverfahren (Interlaced), realisierbar.

18.2 Vom KinoGÄNGER zum FernSEHER

Den Kinofilm gibt es seit ca. 1894. Man hat sich beim klassisches Kino weltweit auf eine Bildwiederholfrequenz von 24 Ganzbilder/sec. geeinigt. Bei den Bildformaten gibt es hingegen eine grössere Vielfalt: Klassisch 12,5:9 / Breitbild 16:9 / Cinemascope 21:9. Auch die Digitalisierung hat beim Kinofilm Einzug gehalten. Heutige Filme werden komplett digital produziert und in den Kinos auch digital auf Beamern vorgeführt. Aktuelle Auflösungen bei digitalem Kinofilm: 2k = 2048Pixel/Zeile / 4k = 4096Pixel/Zeile.
Bei Breitbild- und Cinemascopeproduktionen wird bzw. wurde das Bild anamorph aufgezeichnet. Damit konnte man ein breites Bild auf ein schmaleres Format komprimieren (verzerren) und zur Vorführung wieder dekomprimieren (entzerren). Bei Digital-Video Standard-Definition (SD) PAL und NTSC kommt dieses Verfahren ebenfalls zur Anwendung.

18.3 Interlaced Mode versus Progressive Mode

Television oder auf Deutsch Fernsehen gibt es in der Schwarzweissversion seit ca. 1929 und in der Farbversion ab ca. 1967. Fernsehen wurde erst durch die Massentauglichkeit von Elektronenstrahlröhren bzw. Bildröhren möglich. Um das Bildflimmern auf ein erträgliches Mass zu reduzieren, müssen wie beim Kinofilm 50 Bilder pro Sekunde angezeigt werden. Dies war mit der damaligen Technik allerdings nicht möglich, weil die erforderlichen Bandbreiten fehlten und man mit vernünftigem Aufwand auch keine Bilder zwischenspeichern konnte. Darum bediente man sich eines Tricks: Man lieferte 50 halbe Bilder pro Sekunde und zwar einmal alle ungeraden Zeilen, gefolgt von den geraden Zeilen:

  • Interlaced Mode: Es werden 50 (PAL) oder 60 (NTSC) Halbbilder pro Sekunde nacheinander (ungerade/gerade Zeile) gesendet.
    Vorteil: Weniger Bandbreite erforderlich.
    Nachteil: Kammeffekt bei schnell bewegten Bildern, weil diese zeilenweise nacheinander aufgezeichnet werden.
  • Progressive Mode: Es werden komplette Bilder nacheinander empfangen.
    Vorteil: Man erhält immer ein komplettes Bild.
    Nachteil: Mehr Bandbreite erforderlich.

Ein weitere Kompromiss, der man der Bildröhre schuldete, ist der Overscanbereich:

  • Als Overscan wird ein Bereich an den äusseren Rändern eines Videobildes bezeichnet, dessen Sichtbarkeit nicht garantiert werden kann. Bei Projektionen, insbesondere bei Röhrenbildschirmen, werden die Bildränder durch eine Maske oder Blende abgedeckt, um Ungenauigkeiten und die (bei analogen Röhren praktisch unvermeidlichen) Geometrieabweichungen am Rand zu kaschieren und einen sauberen, geraden Bildabschluss garantieren zu können. Bei der Produktion von Filmen, Videos, DVDs und Fernsehsendungen muss dieser Overscan-Bereich von etwa 6 % berücksichtigt werden, der keine relevanten Bildelemente (z. B. Einblendungen oder Menüs) enthalten darf. Bei Bildschirmen mit aktiven Bildpunkten (z. B. LCD oder Plasma) kann das Bild pixelgenau dargestellt werden, so dass kein Overscan-Bereich nötig ist.

18.4 25/50 Bilder pro Sekunde oder 30/60 Bilder pro Sekunde

Als das Fernsehen erfunden wurde, setzte man weltweit auf das Seitenverhältnis 4:3. Bei der Bildwiederholungsrate allerdings unterschieden sich die Systeme:

  • Angelehnt an die Netzfrequenz des öffentlichen Stromnetzes von 50 Hertz wählte man in Europa (ohne Frankreich), Australien, Teilen von Asien und Afrika eine Bildfrequenz von 25 Vollbilder bzw. 50 Halbbilder pro Sekunde. (PAL)
  • Dagegen wählte man in Nord- und Südamerika bzw. Ostasien aufgrund der Netzfrequenz des öffentlichen Stromnetzes von 60 Hertz eine Bildfrequenz von 30 Vollbilder bzw. 60 Halbbilder pro Sekunde. (NTSC)
Auch bei heutigen Fernsehformaten in High Definition HD wird zwischen 50 Bilder/Sekunde und 60 Bilder/Sekunde unterschieden. Wobei moderne Mediaplayer beide Bildraten korrekt verarbeiten und wiedergeben können. Die unterschiedlichen Abspielraten können allerdings in der Videobearbeitung Probleme bereiten. Unkorrigiert ergeben:
  • 25fps-Original Wiedergabe mit 30fps: 1.2x schneller, d.h. 60 minütiger Film bereits in 50 Minuten abgespielt: Menschen sprechen comicartig
  • 30fps-Original Wiedergabe mit 25fps: 1.2x langsamer, d.h.60 minütiger Film erst in 72 Minuten abgespielt: Männer mit Bass, Frauen mit Stimmbruch

18.5 Elektromagnetische Wellen und Schallwellen

Elektromagnetische Wellen

Schallwellen dagegen stellen die Ausbreitung bzw. die hörbaren Schwingungen von Druck- und Dichteschwankungen in einem elastischen Medium (Gase, Flüssigkeiten, Festkörper) dar.

18.6 Additives und Subtraktives Farbmodell

Additive Farbmischung: RGB = Rot/Grün/Blau. Fernseher, PC-Bildschirm, Beamer etc. Die Komplementärfarben von RGB sind CMY. Rot/Grün/Blau zu gleichen Teilen gemischt ergibt Weiss.

Subtraktive Farbmischung: CMY(K) = Cyan/Magenta/Yellow/(Keycolor meist Schwarz). Drucker, Malen, Analog-Kino mit Filmstreifen etc. Die Komplementärfarben von CMY sind RGB. Cyan/Magenta/Yellow zu gleichen Teilen gemischt ergibt Schwarz.

Was würde passieren, wenn ich in meine Druckerpatrone statt CMYK die Grundfarben RGB einfüllen würde?
Im Gegensatz zum RGB Farbraum, wo die Mischfarbe additiv (Lichtfarben) entsteht, geschieht das beim CMYK Farbraum auf subtraktive Weise (Körperfarben). Das heisst, dass beim Druck im CMYK-Farbraum die Grundfarben nacheinander aufgetragen werden. Somit wird das Mischresultat mit jedem Farbauftrag dunkler. Es wäre zum Beispiel unmöglich, mit den RGB-Grundfarben einen Gelbton zu erhalten.

Farbwahl in z.B. Adobe Photoshop:

18.7 Vom RGB-Bild zum Graustufenbild

In bestimmten Fällen ist es nötig, das Farbbild in ein Graustufenbild umzuwandeln. Zum Beispiel bei dem im nächsten Abschnitt behandelten Farbmodel YCbCr.
Bei der Umwandlung werden die drei Farbanteile RGB verschieden gewichtet. Dies hat einen historischen Hintergrund: Der frühzeitliche Mensch als Jäger und Sammler war vor allem auf eine hohe Auflösung im Grünbereich (Wälder, Wiesen etc.) angewiesen, um Beute oder herannahende Gefahr besser erkennen zu können. Die Farbe Blau war da eher seltener und darum weniger wichtig. Da diese Aspekte des Farbensehens des menschlichen Auges berücksichtigt werden müssen. So wird beispielsweise Grün heller wahrgenommen als Rot, dieses wiederum heller als Blau. Diese unterschiedliche Gewichtung wird in folgender Umrechnungsformel berücksichtigt: Luminanz (Y) = 0.3 x Rot + 0.6 x Grün + 0.1 x Blau

18.8 Das Helligkeits-Farbigkeits-Modell Luminanz/Chrominanz

Das YCbCr-Helligkeits-Farbigkeits-Modell (gemäss CCIR-601 bzw. IEC 601-Standard) wurde für das Digitalfernsehen entwickelt. Ausserdem wird es für digitale Bild- und Videoaufzeichnung, bei JPG-Bildern, MPEG-Videos und damit auch bei DVDs, sowie den meisten anderen digitalen Videoformaten verwendet. Es teilt die Farbinformation in die (Grund-)Helligkeit Y und die Farbigkeit, bestehend aus den zwei Farbkomponenten Cb (Blue-Yellow Chrominance) und Cr (Red-Green Chrominance) auf.

Die Helligkeit entspricht der Hellempfindlichkeit des Auges, die im grünen Spektralbereich am grössten ist. Chrominance oder kurz Chroma bedeutet Buntheit.

Die unterschiedliche Wahrnehmung von Y gegenüber den Cb- und Cr-Kanälen entspricht der Entwicklung der Farb- und Helligkeitsverteilung in der Natur: Im Laufe der Evolution hat sich der menschliche Sehsinn daran angepasst. Das Auge kann geringe Helligkeitsunterschiede besser erkennen als kleine Farbtonunterschiede, und diese wiederum besser als kleine Farbsättigungsunterschiede. So ist ein Text grau auf schwarz geschrieben gut zu lesen, blau auf rot geschrieben bei gleicher Grundhelligkeit jedoch nur sehr schlecht.

Die Analogie zum menschlichen Sehsinn wird für einen grossen Vorteil von YCbCr genutzt: die Farbunterabtastung (engl. chroma subsampling). Dabei wird die Abtastrate und damit die Datenmenge der Chrominanz-Kanäle Cb und Cr gegenüber der Abtastrate des Luminanz-Kanals Y reduziert, ohne dass es zu einer spürbaren Qualitätsverringerung kommt. So kann man z. B. mit der JPEG-Komprimierung eine nicht unerhebliche Datenmenge einsparen.

Das YUV-Farbmodell der analogen Fernsehtechnik wird manchmal fälschlicherweise mit YCbCr für digitale Darstellung von Farbvideosignalen gleichgesetzt. Der Einfachheithalber bedienen wir uns für die folgenden Erklärungen bei dem YCbCr-ähnlichen YUV-Farbmodell. Wer es ganz genau wissen will, konsultiert die einschlägige Fachliteratur oder informiert sich bei den entsprechenden Beiträgen auf Wikipedia.

Die RGB zu Luminanz/Chrominanz-Konvertierung (YUV-Farbmodell):

Die Luminanz/Chrominanz zu RGB-Konvertierung (YUV-Farbmodell):

Zusammenfassend:

18.9 Weitere Farbräume

Full Range RGB in 8 Bit bedeutet 0..255 Helligkeitswerte in allen drei Farbkanälen. Da aber unser Auge nicht für jede Farbe gleich empfindlich ist, werden die 3 x 8 Bits in gewissen Farbräumen etwas anders aufgeteilt. Im Television-Bereich kommen auch noch technische Aspekte hinzu, die es nicht zulassen, den ganzen Helligkeitsbereich auszunutzen, weil dann unter Umständen Übertragungseinrichtungen durch zu hohe Videosignalpegel beschädigt werden können. So definiert z.B. die ITU-R-Empfehlung REC.709 einen Bereich von 16..235 Helligkeitswerte. Man spricht dann von sendefähigem Material. AfterEffects bietet ihnen unter Effekte/Farbkorrektur den Effekt "Sendefähige Farben" an.

18.10 Bildartefakte

  • Der Moiré-Effekt (von frz. moirer, „moirieren; marmorieren“) macht sich bei der Überlagerung von regelmässigen feinen Rastern durch zusätzliche scheinbare grobe Raster bemerkbar. Diese sich ergebenden Muster, deren Aussehen den Mustern aus Interferenzen ähnlich ist, sind ein Spezialfall des Alias-Effektes durch Unterabtastung.
  • Die Blockingartefakte entstehen durch allzustarker DCT-Komprimierung bzw. Quantisierung der DCT-Koeffizienten.

18.11 Vektorgrafik und Bitmapgrafik

Beispiel Bitmap: (auch Rastergrafik oder Pixelmap genannt)

Beispiel Vektorgrafik:

Eine Vektorgrafik wird aus grafischen Primitiven wie Linien, Kreisen, Polygonen oder allgemeinen Kurven (Splines) beschrieben. Die Vektorgrafik ist verlustlos skalierbar (insbesondere beim Vergrössern). Bei Schrift-Fonts handelt es sich um Vektorgrafiken.

Schriftzeichen/Font als Vektorgrafik: Beispiele von gängigen Fontsätzen: ARIAL, COURIER NEW, COMIC SANS MS, FUTURA, FRUTIGER, HELVETICA etc.
Nicht alle Fontsätze beinhalten alle ASCII-Zeichen und schon gar nicht UTF-8 Zeichen. (Gewisse Fancy-Zeichensätze beschränken sich sogar auf A-Z, 0-9 und - )

18.12 Transparenzmasken und Alphakanal

Vom Matte-Painting zum Alphakanal: Matte Paintings (von engl. "matte" = Maske = Vorsatzmalerei) sind gemalte Teile von Kulissen in Filmsets, die auf Leinwand oder Glas aufgebracht wurden. Heutzutage werden fast alle Matte Paintings digital erstellt. Dazu braucht es im Bild neben den drei Farbkanälen RGB noch einen weiteren Kanal, den Alphakanal. Dieser speichert die Transparenz (Durchsichtigkeit) der einzelnen Pixel (Bildpunkte).

Durch die Informationen im Alphakanal des Vordergrundbildes werden die Pixel in den einzelnen RGB-Kanälen transparent oder deckend gesetzt.
TIFF, TGA, PNG, PSD-Formate unterstützten einen direkten Alphakanal, das JPG-Format dagegen nicht.

Spezialfall GIF: Eine Farbe (aus max. 256 Farben/8Bit) kann als Transparenz definiert werden. Der Nachteil dabei: Scharfer Maskenrand und daher Treppeneffekt beim maskierten Gegenstand. Keine Halbtransparenzen möglich.

18.13 Masken und Transparenz bei After Effects

«After Effects» ist eine typische Multimedia-Software und bietet eine präzise Kontrolle bei der kreativen Gestaltung von animierten Grafiken und visuellen Effekten in den Bereichen Film, Video, Multimedia und Internet und kann als «Photoshop» für die 4. Dimension (Zeit) betrachtet werden. «After Effects» wird hauptsächlich in der Filmpostproduktion eingesetzt. «Premiere» ist ein ähnliches Produkt von Adobe, deckt aber mit dem Videoschnitt einen etwas  anderen Aufgabenbereich ab.  Als weiteres Werkzeug wird die vom selben Hersteller die Bildbearbeitungs-Software «Photoshop» angeboten. Weitere Tools von anderen Herstellern für die Filmpostproduktion  sind z.B.: Combustion, Flame, Inferno, Toxik, Eyeon Fusion, Apple Motion, The Foundry Nuke und BlackmagicDesign Fuse. Alternativen zu AfterEffects sind rar, insbesondere wenn sie kostenlos sein müssen. Folgende unentgeltlichen Applikationen können Teilgebiete von AfterEffects abdecken: FusionFree von BlackmagicDesign und Blender.

In AfterEffects sind folgende Maskierungsarten möglich:

  • Bild mit direktem Alphakanal:
    Bild enthält 4 Kanäle nämlich Rot/Grün/Blau/Alpha (RGBA)
  • Bild mit integriertem Alphakanal (Premultiplied):
    Zusätzlich zu RGBA wird die Alphainformation noch in die Farbkanäle eingerechnet. Vollkommen transparente Bereiche werden mit einer Farbe - meist Schwarz oder Weis - vollfarbig dargestellt. Enthält das Bild z.B. noch halbtransparente Bereiche, wird die Farbe prozentual in die jeweiligen Pixel eingerechnet. Bsp.: Bei halber Deckkraft 50% der Farbe des Pixels.
  • Bild ohne eigenen Alphakanal bzw. separatem Alphakanal
    Eigene Datei mit den Transparenzinformationen
  • Masken / Traveling Mattes
    Durch einen Pfad erstellte Ausmaskierung eines Bildes (Ebenenmaske). Form und Lage der Maske kann von Bild zu Bild geändert werden
  • Keyer
    Durch das Programm erstellte Maske, sog. Keyingeffekte (Ebenentransparenz wird durch eine bestimmte Farbe definiert wie zB. bei einer Greenscreen-Aufnahme)

19. Medienformate

19.1 Web-Grafikformate

♦ JPEG, JPG: (Wird seit langem von allen Webbrowsern unterstützt. Auch heute empfiehlt es sich, für Bilder und Fotos dieses Format zu verwenden. JPEG lässt eine ordentliche Bildkompression zu und kann von allen, auch älteren Browsern, angezeigt werden. Eine zu starke Bildkompression hat eine unübersehbare Blockstruktur, sogenannte Blocking-Artefakte, zur Folge. Siehe auch DCT-Demo-App) Sorry, das JPG-File kann nicht angezeigt werden. Viele Grüsse, Dein Webbrowser.

♦ GIF, Animated GIF: (Das Graphics Interchange Format GIF ist ebenfalls ein Bildformat, das von den Webbrowsern schon immer angezeigt werden konnte, ja sogar einmal das Web-Standardbildformat war. GIF eignet sich z.B. für Logos, wegen der Einschränkung auf die 256 Farben der Farbtabelle aber weniger für Fotografien. Beim GIF-Format kann eine Transparenzfarbe zur Ausmaskierungen bestimmt werden. In diesem Bereich ist das PNG Format dem GIF-Format allerdings überlegen, weil dies nicht nur eine Transparenzfarbe, sondern einen Alphakanal zur Maskierung anbietet. GIF hat in der heutigen Zeit seine Daseinsberechtigung wegen der bisher von Konkurrenzprodukten erfolglos angefochtenen Möglichkeit, Animationen zu erstellen.) Sorry, das GIF-File kann nicht angezeigt werden. Viele Grüsse, Dein Webbrowser.

♦ PNG: (Portable Network Graphics PNG ist ein Grafikformat für Rastergrafiken mit verlustfreier Datenkompression. PNG wurde als freier Ersatz für das ältere, bis zum Jahr 2006 mit Patentforderungen belastete Graphics Interchange Format GIF entworfen. PNG unterstützt neben unterschiedlichen Farbtiefen auch Transparenz per Alphakanal.) Sorry, das PNG-File kann nicht angezeigt werden. Viele Grüsse, Dein Webbrowser.

♦ SVG: (Scalable Vector Graphics SVG ist ein Format zur Beschreibung zweidimensionaler Vektorgrafiken. SVG, das auf XML basiert, wurde erstmals im September 2001 veröffentlicht. Praktisch alle relevanten Webbrowser können einen Grossteil des Sprachumfangs darstellen. Animationen werden von SVG mittels SMIL unterstützt. Manipulationen des SVG-DOM sind mit Hilfe eingebetteter Funktionen via Skriptsprachen möglich.) Sorry, das SVG-File kann nicht angezeigt werden. Viele Grüsse, Dein Webbrowser.

♦ BMP: (Windows Bitmap BMP ist ein zweidimensionales Rastergrafikformat, welches 1990 eingeführt wurde. Es unterstützt verschiedene Farbtiefen aber keinen Transparenzkanal. Seit neuerer Zeit wir das BMP Format von den Webbrowsern ebenfalls angezeigt. Da Windows-Bitmaps entweder unkomprimiert oder verlustfrei mit RLE-Komprimierung gespeichert werden, sind BMP-Dateien wesentlich grösser als andere Formate wie PNG und daher für das Internet wenig interessant.) Sorry, das BMP-File kann nicht angezeigt werden. Viele Grüsse, Dein Webbrowser.

♦ TIF: (Tagged Image File Format TIFF oder kurz TIF ist neben PDF und EPS ein wichtiges Format zum Austausch von Daten in der Druckvorstufe in Verlagen und Druckereien, weil es das von ihnen verwendete CMYK-Farbmodell unterstützt. Ausserdem kann man TIFF-Bilder mit hoher Farbtiefe von bis zu 32 Bit pro Farbkomponente speichern, weshalb TIFF gern zum Datenaustausch bei der RAW-Konvertierung verwendet wird. Im Internet wird TIFF genutzt, um Anwendern, wie etwa Verlagen, hochaufgelöste Bilder in druckfähiger, verlustfreier Qualität zur Verfügung zu stellen. Dabei wird in Kauf genommen, dass diese Dateien ein Mehrfaches der Grösse eines verlustbehaftet komprimierten JPEG-Bildes haben. TIFF hat sich so als Quasi-Standard für Bilder mit hoher Qualität etabliert. Webbrowser des Jahrgangs 2018 und früher konnten TIF-Bilder noch nicht anzeigen. Hier sollte ich ein TIF-File anzeigen. Aber Sorry, dieses Format kenne ich derzeit (noch) nicht. Viele Grüsse, Dein Webbrowser.

♦ PSD: (Bisher und vermutlich auch in Zukunft kein Web-Grafikformat! Das Photoshop Document (PSD) ist ein proprietäres Bildformat, das in Adobes Bildbearbeitungsprogramm Photoshop zur Anwendung kommt. Das Format enthält unter anderem Alphakanal, Bildebenen etc. und es werden verschiedene Farbräume unterstützt. Falls Sie hier nur einen leeren grauen Balken sehen, bedeutet dies, dass dieser Webbrowser das Format PSD nicht darstellen kann.) Hier sollte ich ein PSD-File anzeigen. Aber Sorry, dieses Format kenne ich derzeit (noch) nicht. Viele Grüsse, Dein Webbrowser.

19.2 Historische Fernsehnormen in analogem SD (PAL, NTSC, SECAM) «Nice to know»

  • SD Standard Definition
  • NTSC National Televisions System Committee
    Einführung: SW ca. 1942, Color ca.1953
    Verbreitung: Nord-Südamerika Ostasien
    Bemerkungen: Bei Funk/Kabelverbreitung mögliche Farbtonveränderungen (Never the same Color)
  • PAL Phase Alternating Line
    Einführung: SW ca. 1963, Color ca.1967
    Verbreitung: Europa, Australien, Teile Asiens & Afrikas
    Bemerkungen: Spätere Norm und daher aus NTSC-Fehlern gelernt
  • SECAM Séquentiel couleur à mémoire
    Einführung: 1956
    Verbreitung: Frankreich, Ehemalige Ostblockstaaten, Russland, Teile Asiens & Afrikas
    Bemerkungen: Entwickelt aus marktprotektionistischen und politischen Gründen

19.3 Historische Fernsehnormen in digitalem SD (PAL, NTSC) «Nice to know»

PAR = Pixel Aspect Ratio

19.4 Heutige Fernsehnormen in digitalem HD (HDTV) «Need to know»

FCC (Federal Communications Commission / US-Organisation)
ATSC (Advanced Television System Committee / US-Organisation, löst NTSC in den USA ab)
EBU (European Broadcasting Union)
fps: Frames per second (Bilder pro Sekunde) Im Falle von Interlaced handelt es sich eigentlich um Halbbilder
AR: Aspect Ratio (Bild Seitenverhältnis)

19.5 Next generation HD (UHD) «Need to know»

(Ultra High Definition Television UHDTV oder Ultra HDTV und Ultra High Definition Video UHDV)

19.6 Video-Normen und Datenraten «Nice to know»

DV=Digital Video → Legacy consumer videotape recording
DVCAM/DVCpro → Professionelle Variante von DV
HDV=High Definition Video → Video-Bandaufzeichnung
AVCHD=Advanced Video Codec High Definition → Consumer/Prosumer-Bereich
HDCAM=High Definition CAM → Schnittstelle: SDI= Serial Digital Interface, für den Profibereich, HDTV-Produktionen, Film
XDCAM → HD-Profi-Format von SONY für den Broadcast-Bereich


19.7 Maximale Übertragungsraten gängiger Schnittstellen

Angaben in Bit pro Sekunde, Bruttodatenrate! Stand 2020

  • Mobilfunk:
    ♦ GPRS: 115kb/s
    ♦ UMTS: 384 kb/s
    ♦ LTE: 1.2 Gb/s
    ♦ 5G: zukünftig bis zu 10Gb/s
  • Optische Speichermedien:
    ♦ Audio-CD: 1.4Mb/s (Speicherkapazität CD: 650MB .. 900MB)
    ♦ Video-DVD: 10Mb/s (Speicherkapazität: 4.7GB pro Layer. Max. 2 Layer pro Seite)
    ♦ BluRay: 432Mb/s (Speicherkapazität: 25GB pro Layer. Max. 2 Layer pro Seite)
  • USB (Universal Serial Bus):
    ♦ USB-2: 480Mb/s
    ♦ USB-3: 4Gb/s
    ♦ USB-3.1: 10Gb/s
    ♦ USB-3.2/USB-C: 20Gb/s
    ♦ USB-4: 40Gb/s
  • FireWire bzw. i.LINK oder IEEE 1394:
    ♦ Firewire-800: 800Mb/s
  • SCSI/SAS (Small Computer System Interface, Serial Attached SCSI):
    ♦ SCSI-320 (Parallel): 2.6Gb/s
    ♦ SAS-3 (Seriell): 12Gb/s
    ♦ SAS-4 (Seriell): 22.5Gb/s
    ♦ SAS-5 (Seriell): ca. 45Gb/s
  • SATA (Serial Advanced Technology Attachment):
    ♦ S-ATA R2: 3.0Gb/s
    ♦ S-ATA R3: 6.0Gb/s
  • Apple-Thunderbolt:
    ♦ Thunderbolt 2: 20Gb/s
    ♦ Thunderbolt 3: 20Gb/s
    ♦ Thunderbolt 4: 40Gb/s
  • HDMI (High Definition Multimedia Interface):
    ♦ HDMI 1.3: 8.2Gb/s
    ♦ HDMI 2.1: 42.7Gb/s
  • Display-Port:
    ♦ V1.4: 25.92Gb/s
    ♦ V2.0: 77.37Gb/s

19.8 Codecs und Containerformate

  • CODEC: Das Kofferwort "CoDec" bestehend aus Coder und Decoder bezeichnet ein Verfahren, das Daten oder Signale digital kodiert und dekodiert. Meist werden beim Kodiervorgang die analogen Signale nicht verlustlos digitalisiert, sondern es wird eine Dynamikreduktion des analogen Signals sowie eine Datenkompression des digitalen Signals vorgenommen, die je nach Ausmass und Verfahren zu Qualitätsverlusten bei der Rückwandlung des digitalen Datenstroms in die analogen Signale führt. Bild und Ton können betroffen sein aber auch die Kontinuität der Wiedergabe.
    Beispiele zu Video-Codecs:
    ♦ Cinepak ♦ Sorenson ♦ Sorenson3 ♦ DV-PAL ♦ DV-NTSC ♦ MPEG-1 ♦ MPEG-2 ♦ MPEG-4 ♦ MPEG-4 Implementierungen DivX, Xvid und AVCHD ♦ H.261 ♦ H.263 ♦ H.264 ♦ H.265 ♦ Flashvideo FLV und F4V ♦ Theora ♦ RealVideo ♦ 3rd Generation Partnership Project für Smartphone 3GPP ♦ Windows Media Video wmv
    Beispiele zu Audio-Codecs:
    ♦ MPEG1 Layer 2 ♦ MPEG1 Layer3 → MP3 ♦ Ogg Vorbis ♦ RealAudio ♦ Windows Media Audio wma

  • CONTAINER: Container sind Behälter, der unterschiedliche Dateitypen enthalten kann. Mit dem Format wird die Art und Weise beschrieben, wie die Datenformate innerhalb des Containers angeordnet sind (innere Struktur). Audio/Videocontainerformate können zumindest einen Audio- und einen Videostream enthalten. Einige Formate ermöglichen zusätzlich die Einbettung von Untertiteln und Menüstrukturen oder anderen Inhalten.
    Beispiele zu Audio/Video-Containers:
    Microsoft AVI → Audio-Video Interleave ♦ ADOBE Flash Video ♦ Apple Quicktime mov ♦ Blu-ray Disc ♦ DVD ♦ MPEG-2 Stream ♦ RealMedia

19.9 Medienbeispiele

  • Video-DVD-Container:
    Video-Codec: MPEG2
    Mögliche Audio-Codecs: MPEG-1 Layer2 oder PCM
  • BluRay-Container:
    Mögliche Video-Codecs: H.264/MPEG4 oder AVC oder VC-1 oder MPEG2
    Mögliche Audio-Codecs: Dolby-Digital, DTS (Digital Theater System High Definition), PCM (Pulse Code Modulation)