Digitalsignalübertragung/Anwendungen bei Multimedia–Dateien: Unterschied zwischen den Versionen

Aus LNTwww
Wechseln zu:Navigation, Suche
 
(16 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 8: Zeile 8:
 
== Bilder im BMP–Format ==
 
== Bilder im BMP–Format ==
 
<br>
 
<br>
Eines der ältesten Bildformate ist das so genannte '''Bitmap&ndash;Format'''. Entsprechende Dateien werden mit der Endung &bdquo;bmp&rdquo; gekennzeichnet. Wesentliche Eigenschaften von BMP&ndash;Bildern sind:
+
Eines der ältesten Bildformate ist das so genannte&nbsp; '''Bitmap&ndash;Format'''. Entsprechende Dateien werden mit der Endung &bdquo;bmp&rdquo; gekennzeichnet.  
*Unter einer Bitmap versteht man eine Matrix von Bildpunkten, deren einzelne Elemente auch als Pixel (<i>Picture Elements</i>) bezeichnet werden. Abgespeichert werden die Bildpunkte zeilenweise, jeweils von rechts unten nach links oben.<br>
 
  
*Jedes Pixel bekommt noch einen RGB&ndash;Farbwert aus den additiven Grundfarben &bdquo;'''R'''ot&rdquo;, &bdquo;'''G'''rün&rdquo; und &bdquo;'''B'''lau&rdquo;zugewiesen. Je größer der Farbwert sein kann, desto feiner können die darzustellenden Farben abgestuft werden.<br>
+
Wesentliche Eigenschaften von BMP&ndash;Bildern sind:
 +
*Unter einer Bitmap versteht man eine Matrix von Bildpunkten, deren einzelne Elemente auch als Pixel (<i>Picture Elements</i>&nbsp;) bezeichnet werden. Abgespeichert werden die Bildpunkte zeilenweise, jeweils von rechts unten nach links oben.<br>
  
*Die Farbtiefe eines Bildes wird in ''Bits per Pixel'' (BPP) angegeben. Gängig sind Farbtiefen von 1 (Schwarzweißbild), 4, 8 und 24 (Echtfarbbild, <i>True Color</i>).<br>
+
*Jedes Pixel bekommt noch einen RGB&ndash;Farbwert aus den additiven Grundfarben&nbsp; &bdquo;$\rm R$ot&rdquo;,&nbsp; &bdquo;$\rm G$rün&rdquo; &nbsp;und&nbsp; &bdquo;$\rm B$lau&rdquo; &nbsp;zugewiesen. Je größer der Farbwert sein kann, desto feiner können die darzustellenden Farben abgestuft werden.<br>
  
*Da die meisten Bilder nicht das gesamte Farbenspektrum ausnutzen, kann man in jeder Bitmap eine spezifische Zuordnung in Form einer Farbtabelle definieren. So lassen sich auch mit relativ geringer Farbtiefe (bis zu 8 Bit) die Bilder mit guter Farbqualität darstellen.<br>
+
*Die Farbtiefe eines Bildes wird in&nbsp; ''Bits per Pixel''&nbsp; (BPP) angegeben. Gängig sind Farbtiefen von &nbsp;$1$&nbsp; (Schwarzweißbild),&nbsp; $4$,&nbsp; $8$&nbsp; und&nbsp; $24$&nbsp; (Echtfarbbild, <i>True Color</i>).<br>
 +
 
 +
*Da die meisten Bilder nicht das gesamte Farbenspektrum ausnutzen, kann man in jeder Bitmap eine spezifische Zuordnung in Form einer Farbtabelle definieren. So lassen sich auch mit relativ geringer Farbtiefe (bis zu acht Bit) die Bilder mit guter Farbqualität darstellen.<br>
  
  
Zeile 25: Zeile 27:
 
*dem Informationsblock (mindestens 40 Byte),  und anschließend<br>
 
*dem Informationsblock (mindestens 40 Byte),  und anschließend<br>
  
*dem Bilddatenblock<br><br>
+
*dem Bilddatenblock.<br><br>
  
 
Dargestellt sind die ersten 160 Byte der Datei &bdquo;LNTprofs.bmp&rdquo;. Gelb hinterlegt sind sowohl der Dateikopf (in Hexadezimaldarstellung von 0x00 bis 0x0D) als auch der Bilddatenbereich (ab 0x36). Nicht hinterlegt ist der 40 Byte&ndash;Informationsblock (von 0x0E bis 0x35).<br>
 
Dargestellt sind die ersten 160 Byte der Datei &bdquo;LNTprofs.bmp&rdquo;. Gelb hinterlegt sind sowohl der Dateikopf (in Hexadezimaldarstellung von 0x00 bis 0x0D) als auch der Bilddatenbereich (ab 0x36). Nicht hinterlegt ist der 40 Byte&ndash;Informationsblock (von 0x0E bis 0x35).<br>
Zeile 38: Zeile 40:
 
*0x0A ... 0x0D (4 Byte)&nbsp;Offset (Beginn der Bilddaten): 0x 00 00 00 36&nbsp;&nbsp;&nbsp;&#8658;&nbsp;&nbsp;&nbsp;54d.<br><br>
 
*0x0A ... 0x0D (4 Byte)&nbsp;Offset (Beginn der Bilddaten): 0x 00 00 00 36&nbsp;&nbsp;&nbsp;&#8658;&nbsp;&nbsp;&nbsp;54d.<br><br>
  
<i>Hinweis:</i> Diese Angaben gelten allerdings nur für den Intel&ndash;Prozessor, der nach der so genannten <i>Little&ndash;Endian&ndash;Byteanordnung</i> vom niederwertigsten Byte (englisch: ''Least Significant Byte'', LSB) zum höchstwertigen Byte (englisch: ''Most Significant Byte'', MSB) Byte liest. Die Anordnung &bdquo;98 DE 02 00&rdquo; der Bytes 2, ..., 5 ist somit als &bdquo;0x 00 02 DE 98&rdquo; zu interpretieren, was der Dezimalzahl &bdquo;188056&rdquo; entspricht.<br>
+
<i>Hinweis:</i> &nbsp;Diese Angaben gelten allerdings nur für den Intel&ndash;Prozessor, der nach der so genannten &nbsp;<i>Little&ndash;Endian&ndash;Byteanordnung</i>&nbsp; vom niederwertigsten Byte &nbsp;(englisch: &nbsp;''Least Significant Byte'', LSB)&nbsp; zum höchstwertigen Byte &nbsp;(englisch:&nbsp; ''Most Significant Byte'', MSB)&nbsp; Byte liest. Die Anordnung &bdquo;98 DE 02 00&rdquo; der Bytes 2, ..., 5 ist somit als &bdquo;0x 00 02 DE 98&rdquo; zu interpretieren, was der Dezimalzahl &bdquo;188056&rdquo; entspricht.<br>
  
 
Der '''40 Byte&ndash;Informationsblock''' beinhaltet folgende Werte (Bytes mit dem Inhalt &bdquo;00&rdquo; sind hier nicht angegeben):
 
Der '''40 Byte&ndash;Informationsblock''' beinhaltet folgende Werte (Bytes mit dem Inhalt &bdquo;00&rdquo; sind hier nicht angegeben):
Zeile 63: Zeile 65:
 
*0x32 ... 0x35 (4 Byte)&nbsp;&nbsp;&nbsp;Anzahl der wichtigen Farben.<br><br>
 
*0x32 ... 0x35 (4 Byte)&nbsp;&nbsp;&nbsp;Anzahl der wichtigen Farben.<br><br>
  
Anschließend beginnt mit &bdquo;0x 43 2A 23&rdquo; der '''Bilddatenbereich''' (im Beispiel jeweils drei Byte pro Pixel für R &ndash; G &ndash; B). Da auch hier (beim Intel&ndash;Prozessor) die <i>Little&ndash;Endian&ndash;Byteanordnung</i> gilt, bezeichnen diese Einträge die Farbwerte R = 23, G = 2A, B = 43 (jeweils hexadezimal) bzw. R = 35, G = 42, B = 67 (dezimal) .<br>
+
Anschließend beginnt mit &bdquo;0x 43 2A 23&rdquo; der '''Bilddatenbereich''' (im Beispiel jeweils drei Byte pro Pixel für R &ndash; G &ndash; B). Da auch hier (beim Intel&ndash;Prozessor) die <i>Little&ndash;Endian&ndash;Byteanordnung</i> gilt, bezeichnen diese Einträge die Farbwerte&nbsp; $\rm R = 23$,&nbsp; $\rm G = 2A$,&nbsp; $\rm B = 43$&nbsp; (jeweils hexadezimal) bzw. &nbsp; $\rm R = 35$,&nbsp; $\rm G = 42$,&nbsp; $\rm B = 67$&nbsp; (dezimal) .<br>
  
Die Bilder auf der nächsten Seite machen deutlich, dass bereits wenige Fehler in Dateikopf (14 Byte) oder Informationsblock (40 Byte) genügen, um ein Bild völlig unbrauchbar zu machen. Der Header einer Multimedia&ndash;Datei sollte deshalb besonders geschützt werden. Bei BMP umfasst dieser Header indgesamt 54 Byte.<br>
+
Die Bilder auf der nächsten Seite machen deutlich, dass bereits wenige Fehler in Dateikopf ($14$&nbsp; Byte) oder Informationsblock ($40$&nbsp; Byte) genügen, um ein Bild völlig unbrauchbar zu machen. Der Header einer Multimedia&ndash;Datei sollte deshalb besonders geschützt werden. Bei BMP umfasst dieser Header indgesamt $54$&nbsp; Byte.<br>
  
 
== Übertragungsfehler im Dateikopf und Informationsblock ==
 
== Übertragungsfehler im Dateikopf und Informationsblock ==
Zeile 71: Zeile 73:
 
Mit einer Bilderserie sollen die Auswirkungen von Übertragungsfehlern innerhalb von Dateikopf (0x00 ... 0x0D) und Informationsblock (0x0E ... 0x35) verdeutlicht werden. Die linke Abbildung zeigt den Hexadezimal&ndash;Dump der verfälschten Datei im Vergleich zur Originaldatei (rechts).<br>
 
Mit einer Bilderserie sollen die Auswirkungen von Übertragungsfehlern innerhalb von Dateikopf (0x00 ... 0x0D) und Informationsblock (0x0E ... 0x35) verdeutlicht werden. Die linke Abbildung zeigt den Hexadezimal&ndash;Dump der verfälschten Datei im Vergleich zur Originaldatei (rechts).<br>
  
[[Datei:P ID1852 Dig T 5 4 S2a version1.png|Hexdumps der verfälschten Datei und der Originaldatei|class=fit]]<br>
+
[[Datei:Dig_T_5_4_S2a_version2.png|center|frame|Hexdumps der verfälschten Datei und der Originaldatei|class=fit]]
  
 
Nachfolgend sehen Sie die Bilder, die sich ergeben, wenn die fünf Fehlerblöcke sukzessive korrigiert werden:
 
Nachfolgend sehen Sie die Bilder, die sich ergeben, wenn die fünf Fehlerblöcke sukzessive korrigiert werden:
[[Datei:P ID1848 Dig T 5 4 S2b version90.png|right|frame|Auswirkungen von Fehlern im BMP–Header|class=fit]]
+
[[Datei:P ID1848 Dig T 5 4 S2b version90.png|center|frame|Auswirkungen von Fehlern im BMP–Header|class=fit]]
 
*Die gegebene Datei lässt sich gar nicht öffnen. Korrigiert man die beiden ersten Byte (violette Markierung) von &bdquo;0x 40 00&rdquo; in &bdquo;0x 42 4D&rdquo;, so ergibt sich das linke obere, einheitlich graue Bild.<br>
 
*Die gegebene Datei lässt sich gar nicht öffnen. Korrigiert man die beiden ersten Byte (violette Markierung) von &bdquo;0x 40 00&rdquo; in &bdquo;0x 42 4D&rdquo;, so ergibt sich das linke obere, einheitlich graue Bild.<br>
  
 
*Korrigiert man die Bildbreite von &bdquo;0x C5&rdquo; in &bdquo;0x FA&rdquo; &nbsp; &#8658; &nbsp; 250d und die Bildhöhe von von &bdquo;0x 7D&rdquo; in &bdquo;0x FA&rdquo; &nbsp; &#8658; &nbsp;  250d (grüne Markierung), so ergibt sich das mittlere obere Bild bereits mit der richtigen Größe (250 x 250 Pixel), aber immer noch mit grauem Inhalt.<br>
 
*Korrigiert man die Bildbreite von &bdquo;0x C5&rdquo; in &bdquo;0x FA&rdquo; &nbsp; &#8658; &nbsp; 250d und die Bildhöhe von von &bdquo;0x 7D&rdquo; in &bdquo;0x FA&rdquo; &nbsp; &#8658; &nbsp;  250d (grüne Markierung), so ergibt sich das mittlere obere Bild bereits mit der richtigen Größe (250 x 250 Pixel), aber immer noch mit grauem Inhalt.<br>
  
*Zum rechten oberen Bild kommt man durch Berichtigung der Farbtiefe (''Bits per Pixel'', BPP) von &bdquo;0x 08&rdquo; &nbsp; &#8658; &nbsp; 8d auf &bdquo;0x 18&rdquo; &nbsp; &#8658; &nbsp; 24d (blaue Markierung), so erkennt man teilweise schon Inhalte.<br>
+
*Zum rechten oberen Bild kommt man durch Berichtigung der Farbtiefe (''Bits per Pixel'', BPP) von &bdquo;0x 08&rdquo; &nbsp; &#8658; &nbsp; 8d auf &bdquo;0x 18&rdquo; &nbsp; &#8658; &nbsp; 24d (blaue Markierung). Danach erkennt man teilweise schon Inhalte, aber mit schlechter Qualität.<br>
  
*Durch Korrektur des roten Fehlerblocks im Bereich 0x0A ... 0x0D (Offset) von &bdquo;0x 36 01&rdquo; &nbsp; 54d in &bdquo;0x 36 00&rdquo; &nbsp; 54d erhält man schließlich das Originalbild &bdquo;LNTprofs.bmp&rdquo;.
+
*Durch Korrektur des roten Fehlerblocks im Bereich 0x0A ... 0x0D (Offset) von &bdquo;0x 36 01&rdquo; &nbsp; in &bdquo;0x 36 00&rdquo; &nbsp; erhält man schließlich das Originalbild &bdquo;LNTprofs.bmp&rdquo;.
 
<br clear=all>
 
<br clear=all>
 +
== BMP–Dateien nach BSC–Verfälschung==
 +
<br>
 +
[[Datei:Dig_T_5_4_S3_version2.png|center|frame|Einfluss von BSC–Fehlern auf BMP–Dateien, oben mit 24 BPP, unten mit 8 BPP|class=fit]]
 +
Die folgende Bilderserie zeigt den Einfluss von statistisch unabhängigen Fehlern (BSC&ndash;Modell) mit folgenden (Bit&ndash;)Fehlerwahrscheinlichkeiten:
 +
:$$p = 10^{-3}, \ p = 10^{-2}, \ p = 10^{-1}.$$
 +
 +
Der Dateiheader ist jeweils fehlerfrei.<br>
 +
 +
*Bei der oberen Reihe wurde vom Farbbild &bdquo;LNTprofs.bmp&rdquo; mit&nbsp; $\rm 24$&nbsp; Bits per Pixel ausgegangen; der eigentliche Bildbereich umfasst&nbsp; $250 \cdot 250 \cdot  24 = 1.5 \cdot 10^6$ Bit.
 +
*Die untere Reihe basiert auf einem Graustufenbild mit&nbsp; $\rm 8$&nbsp; Bits per Pixel. Die Datei ist somit etwa um den Faktor&nbsp; $3$&nbsp; kleiner als die Farbdatei.
 +
<br clear=all>
 +
Man erkennt aus diesen Darstellungen:
 +
*Die Fehlerwahrscheinlichkeit&nbsp; $p = 10^{-3}$&nbsp; ist noch nicht allzu störend. Beim Farbbild sind damit etwa&nbsp; $1500$&nbsp; Bit und auch vergleichsweise ebensoviele Pixel verfälscht (statistische Aussagen). Beim Graustufenbild gibt es wegen der kleineren Datei nur etwa&nbsp; $500$&nbsp; Bitfehler.<br>
  
 +
*Subjektiv ist der störende Eindruck von Bitfehlern beim Graustufenbild trotz kleinerer Bitfehlerzahl etwa genau so wie beim Farbbild, da sich bei letzterem manche Bitfehler nur in einer marginalen Farbveränderung auswirken.<br>
  
== BMP–Dateien nach BSC–Verfälschung ==
+
== BMP–Dateien mit Bündelfehlern ==
 
<br>
 
<br>
Die folgende Bilderserie zeigt den Einfluss von statistisch unabhängigen Fehlern (BSC&ndash;Modell) mit den Fehlerwahrscheinlichkeiten <i>p</i> = 10<sup>&ndash;3</sup>, <i>p</i> = 10<sup>&ndash;2</sup> und <i>p</i> = 10<sup>&ndash;1</sup>. Der Dateiheader ist jeweils fehlerfrei.<br>
+
Betrachten wir nun anhand der folgenden Grafik den Einfluss von Bündelfehlern auf BMP–Dateien.
 +
*Das linke Bild &nbsp;$\rm A$&nbsp; zeigt die Originaldatei &bdquo;Weiß.bmp&rdquo; mit ausschließlich weißen Pixeln.
 +
*Das Ergebnis ist somit unabhängig von der Farbtiefe.
 +
*Die Datei &bdquo;Weiß1.bmp&rdquo; (1 BPP, 4046 Byte) ist jedoch nahezu um den Faktor&nbsp; $24$&nbsp; kleiner als die Datei &bdquo;Weiß24.bmp&rdquo; (24 BPP, 90456 Byte).
 +
*Nahezu deshalb, weil der Header bei beiden Dateien gleich groß ist und in der &nbsp;$\text{1 BPP}$&ndash;Datei ebenfalls eine Farbtabelle mit enthalten ist.<br>
 +
 
 +
[[Datei:P ID1853 Dig T 5 4 S4 version1.png|left|frame|Einfluss von Bündelfehlern auf BMP–Dateien|class=fit]]
 +
<br clear=all>
 +
Bei den vier rechten Bildern sind jeweils Übertragungsfehler mit der (mittleren) Fehlerwahrscheinlichkeit&nbsp; $p_{\rm M}  = 1\%$&nbsp; berücksichtigt. Man erkennt:
 +
*Die Fehler im Bild&nbsp; $\rm B$&nbsp; sind statistisch unabhängig und wurden gemäß dem&nbsp; [[Digitalsignalübertragung/Binary_Symmetric_Channel_(BSC)|BSC&ndash;Modell]]&nbsp; generiert. Sie sind zufällig über die gesamte Bildfläche verteilt.<br>
  
[[Datei:P ID1850 Dig T 5 4 S3 version1.png|Einfluss von BSC–Fehlern auf BMP–Dateien|class=fit]]<br>
+
*Dagegen zeigen die Bilder&nbsp; $\rm C$&nbsp; und&nbsp; $\rm D$&nbsp; Bündelfehlerstrukturen nach dem&nbsp; [[Digitalsignalübertragung/Bündelfehlerkanäle#Kanalmodell_nach_Gilbert.E2.80.93Elliott|GE&ndash;Modell]]&nbsp; mit  unterschiedlichen Fehlerkorrelationsdauern&nbsp; $D_{\rm K} \approx 8$&nbsp; bzw. &nbsp;$D_{\rm K} \approx 95$. Man erkennt aus der Fehlerstruktur, dass BMP&ndash;Bilder zeilenweise abgespeichert werden.<br>
  
Bei der oberen Reihe wurde vom Farbbild &bdquo;LNTprofs.bmp&rdquo; mit 24 BPP ausgegangen; der eigentliche Bildbereich umfasst 250 x 250 x 24 = 1.5 &middot; 10<sup>6</sup> Bit. Die untere Reihe basiert auf einem Graustufenbild mit 8 BPP. Die Datei ist somit etwa um den Faktor 3 kleiner als die Farbdatei. Man erkennt:
+
*Bei den Schwarz&ndash;Weiß&ndash;Bildern  (1 BPP) &nbsp;$\rm B$,&nbsp; $\rm C$&nbsp; und&nbsp; $\rm D$&nbsp; ist im statistischen Mittel jedes 100. Pixel verfälscht. Beim Bild&nbsp; $\rm E$&nbsp; mit 24 BPP (''True Color'') gibt es demgegenüber trotz gleicher mittlerer Fehlerwahrscheinlichkeit&nbsp; $p_{\rm M}  = 1\%$&nbsp; mehr Pixelverfälschungen.<br>
*Die Fehlerwahrscheinlichkeit <i>p</i> = 10<sup>&ndash;3</sup> ist noch nicht allzu störend. Beim Farbbild sind damit etwa 1500 Bit und auch vergleichsweise ebensoviele Pixel verfälscht (statistische Aussagen). Beim Graustufenbild sind es wegen der kleineren Datei nur etwa 500 Bitfehler.<br>
 
  
*Subjektiv ist der störende Eindruck von Bitfehlern beim Graustufenbild trotz kleinerer Bitfehlerzahl etwa genau so wie beim Farbbild, da sich bei letzterem manche Bitfehler nur in einer marginalen Farbveränderung auswirken.<br><br>
+
*Ein Vergleich der Bilder&nbsp; $\rm D$&nbsp; und&nbsp; $\rm E$&nbsp; zeigt die unterschiedlichen Korrelationsdauern bezogen auf Pixel&nbsp; $(D_{\rm K} \approx 95$&nbsp; gegenüber &nbsp;$D_{\rm K} \approx 95/24 \approx 4)$. Außerdem erkennt man, dass im Bild&nbsp; $\rm E$&nbsp; die Fehlerpixel farbig sind.<br><br>
  
== WAV–Dateien nach BSC–Verfälschung ==
+
== Auswirkungen von Übertragungsfehlern auf Audios ==
 
<br>
 
<br>
Nachfolgend finden Sie das mit dem BSC&ndash;Modell verfälschte Audio &bdquo;Stille.wav&rdquo; mit unterschiedlichen Fehlerwahrscheinlichkeiten (BER: <i>Bit Error Rate</i>). Der besonders zu schützende Dateiheader umfasst bei WAV&ndash;Dateien 43 Byte. Die Länge der Audios ist ca. 10 Sekunden.<br>
+
Das [https://de.wikipedia.org/wiki/RIFF_WAVE WAVE-Dateiformat] ist ein Containerformat zur digitalen Speicherung von Audiodaten, das auf dem von Microsoft für Windows definierten ''Resource Interchange File Format'' (RIFF) aufsetzt. Der besonders zu schützende Dateiheader umfasst bei WAVE&ndash;Dateien &nbsp;$43$ Byte
 +
 
 +
Enthalten sind meist sogenannte PCM-Rohdaten, also eine zeit- und wertdiskrete Darstellung des zeitlichen Verlaufs eines Signals. Die Qualität des aufgezeichneten Klangs hängt dann von zwei Werten ab, nämlich
 +
*der Abtastrate (Anzahl der Abtastwerte pro Zeiteinheit),
 +
*der Auflösung (Bit-Tiefe).
 +
 
 +
 
 +
Wir demonstrieren zunächst den Einfluss von Übertragungsfehlern auf die Audiodatei  &bdquo;Stille.wav&rdquo; mit ca. 10 Sekunden Dauer. Das heißt: Alles, was Sie hören, sind Übertragungsfehler.
 +
 
  
<lntmedia>file:A_ID41__ruhe1_bsc_00001.mp3</lntmedia><br>
+
'''Statistisch unabhängige Fehler entsprechend dem BSC&ndash;Modell'''
<lntmedia>file:A_ID43__ruhe1_bsc_0001.mp3</lntmedia><br>
+
<lntmedia>file:A_ID44__ruhe1_bsc_001.mp3</lntmedia><br>
+
Bei den folgenden WAVE-Dateien beginnen wir mit dem&nbsp;  [[Digitalsignalübertragung/Binary_Symmetric_Channel_(BSC)|BSC&ndash;Parameter]]&nbsp; $p= 10^{-5}$&nbsp; und erhöhen diesen bis zu&nbsp; $p= 10\%$.  
<lntmedia>file:A_ID45__ruhe1_bsc_01.mp3</lntmedia><br>
+
*$p$&nbsp; gibt gleichzeitig die mittlere  Fehlerwahrscheinlichkeit&nbsp; $p_{\rm M}$&nbsp; an, die auch als  <i>Bit Error Rate</i> (BER) bezeichnet wird.  
<lntmedia>file:A_ID46__ruhe1_bsc_1.mp3</lntmedia>
+
*Jeweils angegeben ist auch die subjektive Einschätzung des Autors.<br>
  
== BMP– und WAV–Dateien mit Bündelfehlern ==
 
<br>
 
Das linke Bild (A) zeigt die Originaldatei &bdquo;Weiß.bmp&rdquo; mit ausschließlich weißen Pixeln. Das Ergebnis ist unabhängig von der Farbtiefe, doch ist die Datei &bdquo;Weiß1.bmp&rdquo; (1 BMP, 4046 Byte) nahezu um den Faktor 24 kleiner als die Datei &bdquo;Weiß24.bmp&rdquo; (24 BPP, 90456 Byte). Nahezu deshalb, weil der Header bei beiden Dateien gleich groß ist und in der 1 BPP&ndash;Datei ebenfalls eine Farbtabelle mit enthalten ist.<br>
 
  
[[Datei:P ID1853 Dig T 5 4 S4 version1.png|Einfluss von Bündelfehlern auf BMP–Dateien|class=fit]]<br>
+
<lntmedia>file:A_ID41__ruhe1_bsc_00001.mp3</lntmedia> &nbsp; &nbsp; $p=10^{-5}$ &nbsp; &rArr; &nbsp;  Kaum hörbar. <br><br>
 +
<lntmedia>file:A_ID43__ruhe1_bsc_0001.mp3</lntmedia> &nbsp; &nbsp; $p=10^{-4}$ &nbsp; &rArr; &nbsp;  Noch nicht sehr störend. <br><br>
 +
<lntmedia>file:A_ID44__ruhe1_bsc_001.mp3</lntmedia> &nbsp; &nbsp; $p=10^{-3}$ &nbsp; &rArr; &nbsp;  Merkbar störend. <br><br>
 +
<lntmedia>file:A_ID45__ruhe1_bsc_01.mp3</lntmedia> &nbsp; &nbsp; $p=10^{-2}$ &nbsp; &rArr; &nbsp;  Warnung vor dem Öffnen.<br><br>
 +
<lntmedia>file:A_ID46__ruhe1_bsc_1.mp3</lntmedia> &nbsp; &nbsp; $p=10^{-1}$ &nbsp; &rArr; &nbsp;  Nur für extrem Lärmunempfindliche geeignet.<br><br>
 +
 
 +
'''Gegenüberstellung von statistisch unabhängigen Fehlern und Bündelfehlern'''
  
Bei den vier rechten Bildern sind jeweils Übertragungsfehler mit der (mittleren) Fehlerwahrscheinlichkeit <i>p</i><sub>M</sub> = 0.01 berücksichtigt. Man erkennt:
+
*Die statistisch unabhängigen Fehler wurden wieder mit dem&nbsp;  [[Digitalsignalübertragung/Binary_Symmetric_Channel_(BSC)|BSC&ndash;Modell]]&nbsp; generiert. Mittlere  Fehlerwahrscheinlichkeit: &nbsp; $p_{\rm M}=10^{-3}$.
*Die Fehler im Bild (B) sind statistisch unabhängig und wurden gemäß dem BSC&ndash;Modell generiert. Sie sind zufällig über die gesamte Bildfläche verteilt.<br>
+
*Für die Generierung der Bündelfehler wurde das  Kanalmodell nach&nbsp; [[Digitalsignalübertragung/Bündelfehlerkanäle#Kanalmodell_nach_Gilbert.E2.80.93Elliott|Gilbert&ndash;Elliott]]&nbsp; (GE) verwendet.  
 +
*Die mittlere  Fehlerwahrscheinlichkeit beträgt auch hier&nbsp; $p_{\rm M}=10^{-3}$.  
 +
*Gegenübergestellt wird die sehr kurze&nbsp; [[Digitalsignalübertragung/Bündelfehlerkanäle#Fehlerkorrelationsfunktion_des_GE.E2.80.93Modells|Korrelationsdauer]]&nbsp; $D_{\rm K}= 8$&nbsp; mit weitreichenden statistischen Bindungen &nbsp; &rArr; &nbsp;  $D_{\rm K}= 1000$.
  
*Dagegen zeigen die Bilder (C) und (D) Bündelfehlerstrukturen (GE&ndash;Modell) mit unterschiedlichen Fehlerkorrelationsdauern <i>D</i><sub>K</sub> &asymp; 8 bzw. <i>D</i><sub>K</sub> &asymp; 95. Man erkennt, dass BMP&ndash;Bilder zeilenweise abgespeichert werden.<br>
 
  
*Bei den 1 BPP&ndash;Bildern (B), (C) und (D) ist im statistischen Mittel jedes 100. Pixel verfälscht. Bei der 24 BPP&ndash;Datei (E) gibt es demgegenüber trotz gleicher Fehlerwahrscheinlichkeit <i>p</i><sub>M</sub> = 1% mehr Pixelverfälschungen.<br>
+
Zunächst gehen wir wieder von der Datei &bdquo;Stille.wav&rdquo; aus. Man erkennt, dass eine kurze Fehlerkorrelationsdauer des GE&ndash;Modells im Ergebnis sich nicht allzu sehr von statistisch unabhängigen Fehlern unterscheidet, da jeder Abtastwert mit &nbsp;$16$ Bit dargestellt wird.  
 +
 +
<lntmedia>file:A_ID43__ruhe1_bsc_0001.mp3</lntmedia> &nbsp; &nbsp; BSC&ndash;Modell. <br><br>
 +
<lntmedia>file:A_ID51__ruhe1_ge_8.mp3</lntmedia> &nbsp; &nbsp; GE&ndash;Modell mit $D_{\rm K}= 8$. <br><br>
 +
<lntmedia>file:A_ID52__ruhe1_ge_1000.mp3</lntmedia> &nbsp; &nbsp; GE&ndash;Modell mit $D_{\rm K}= 1000$.<br><br>
  
*Ein Vergleich der Bilder (D) und (E) zeigt die unterschiedlichen Korrelationsdauern bezogen auf Pixel (&asymp; 95 gegenüber &asymp; 4). Außerdem erkennt man, dass im Bild (E) die Fehlerpixel farbig sind.<br><br>
+
Auch beim nachfolgenden kurzen Musikstück gelten die gleichen Kanalparameter und man erkennt ähnliche Eigenschaften.<br>
  
Die nachfolgenden Audios sollen den Einfluss von statistisch unabhängigen Fehlern bzw. Bündelfehlern auf WAV&ndash;Dateien zeigen. Zunächst gehen wir von der Datei &bdquo;Stille.wav&rdquo; aus.<br>
+
<lntmedia>file:A_ID48__k2_bsc.mp3</lntmedia> &nbsp; &nbsp; BSC&ndash;Modell. <br><br>
 +
<lntmedia>file:A_ID53__k2_ge_8.mp3</lntmedia> &nbsp; &nbsp; GE&ndash;Modell mit $D_{\rm K}= 8$. <br><br>
 +
<lntmedia>file:A_ID54__k2_ge_1000.mp3</lntmedia> &nbsp; &nbsp; GE&ndash;Modell mit $D_{\rm K}= 1000$.<br><br>
  
[[Audio Please add link Total 3]]<br>
+
''Hinweis'': &nbsp; Alle (verfälschten) BMP–Bilder und WAV–Audios zu diesem Kapitel wurden mit dem Windows–Programm „Digitale Kanalmodelle & Multimedia” aus dem (früheren) Praktikum „Simulation Digitaler Übertragungssysteme ” am Lehrstuhl für Nachrichtentechnik der TU München erzeugt. Die folgenden Links stellen bereit:
 +
*das Windows-Programm&nbsp; [http://www.lntwww.de/downloads/Sonstiges/Programme/DKM.zip DKM] &nbsp; &rArr; &nbsp; Link verweist auf die ZIP-Version des Programms; und
 +
*die zugehörige&nbsp; [http://www.lntwww.de/downloads/Sonstiges/Texte/Digitale_Kanalmodelle.pdf Praktikumsanleitung]  &nbsp; &rArr; &nbsp; Link verweist auf die PDF-Version.  
  
Man erkennt, dass eine kurze Fehlerkorrelationsdauer des GE&ndash;Modells im Ergebnis sich nicht allzu sehr von statistisch unabhängigen Fehlern unterscheidet, da jeder Abtastwert mit 16 Bit dargestellt wird. Auch beim nachfolgenden kurzen Musikstück beträgt die mittlere Fehlerwahrscheinlichkeit jeweils 0.1%.<br>
 
  
[[Audio Please add link - Total 3]]<br>
 
  
==Aufgaben==
+
==Aufgaben zum Kapitel==
 
<br>
 
<br>
[[Aufgaben:5.8 BMP-Format|A5.8 BMP-Format]]
+
[[Aufgaben:5.8:_BMP-Format|Aufgabe 5.8: BMP-Format]]
  
[[Zusatzaufgaben:5.8 Verfälschung von BMP-Bildern]]
+
[[Aufgaben:5.8Z_Verfälschung_von_BMP-Bildern|Aufgabe 5.8Z: Verfälschung von BMP-Bildern]]
  
 
{{Display}}
 
{{Display}}

Aktuelle Version vom 26. März 2019, 16:58 Uhr



Bilder im BMP–Format


Eines der ältesten Bildformate ist das so genannte  Bitmap–Format. Entsprechende Dateien werden mit der Endung „bmp” gekennzeichnet.

Wesentliche Eigenschaften von BMP–Bildern sind:

  • Unter einer Bitmap versteht man eine Matrix von Bildpunkten, deren einzelne Elemente auch als Pixel (Picture Elements ) bezeichnet werden. Abgespeichert werden die Bildpunkte zeilenweise, jeweils von rechts unten nach links oben.
  • Jedes Pixel bekommt noch einen RGB–Farbwert aus den additiven Grundfarben  „$\rm R$ot”,  „$\rm G$rün”  und  „$\rm B$lau”  zugewiesen. Je größer der Farbwert sein kann, desto feiner können die darzustellenden Farben abgestuft werden.
  • Die Farbtiefe eines Bildes wird in  Bits per Pixel  (BPP) angegeben. Gängig sind Farbtiefen von  $1$  (Schwarzweißbild),  $4$,  $8$  und  $24$  (Echtfarbbild, True Color).
  • Da die meisten Bilder nicht das gesamte Farbenspektrum ausnutzen, kann man in jeder Bitmap eine spezifische Zuordnung in Form einer Farbtabelle definieren. So lassen sich auch mit relativ geringer Farbtiefe (bis zu acht Bit) die Bilder mit guter Farbqualität darstellen.


Hexdump einer BMP-Datei

Eine jede BMP–Datei besteht aus drei Teilblöcken, wie die nebenstehende Grafik beispielhaft verdeutlicht:

  • dem Dateikopf (14 Byte),
  • dem Informationsblock (mindestens 40 Byte), und anschließend
  • dem Bilddatenblock.

Dargestellt sind die ersten 160 Byte der Datei „LNTprofs.bmp”. Gelb hinterlegt sind sowohl der Dateikopf (in Hexadezimaldarstellung von 0x00 bis 0x0D) als auch der Bilddatenbereich (ab 0x36). Nicht hinterlegt ist der 40 Byte–Informationsblock (von 0x0E bis 0x35).

Der Dateikopf beinhaltet folgende Informationen (der Präfix „0x” zeigt die Hexadezimaldarstellung an und das nachgestellte „d” weist auf die Dezimaldarstellung hin):

  • 0x00 ... 0x01 (2 Byte)   BMP–Kennung: 0x 42 4D   ⇒   „BM”,
  • 0x02 ... 0x05 (4 Byte)   Dateigröße in Byte: 0x 02 DE 98   ⇒   188056d,
  • 0x06 ... 0x09 (5 Byte)   reserviert (muss immer mit Nullen belegt sein),
  • 0x0A ... 0x0D (4 Byte) Offset (Beginn der Bilddaten): 0x 00 00 00 36   ⇒   54d.

Hinweis:  Diese Angaben gelten allerdings nur für den Intel–Prozessor, der nach der so genannten  Little–Endian–Byteanordnung  vom niederwertigsten Byte  (englisch:  Least Significant Byte, LSB)  zum höchstwertigen Byte  (englisch:  Most Significant Byte, MSB)  Byte liest. Die Anordnung „98 DE 02 00” der Bytes 2, ..., 5 ist somit als „0x 00 02 DE 98” zu interpretieren, was der Dezimalzahl „188056” entspricht.

Der 40 Byte–Informationsblock beinhaltet folgende Werte (Bytes mit dem Inhalt „00” sind hier nicht angegeben):

  • 0x0E ... 0x11 (4 Byte)   Länge des Info–Blocks:   0x 28   ⇒   40d,
  • 0x12 ... 0x15 (4 Byte)   Bildbreite in Pixel:   0x FA   ⇒   250d,
  • 0x16 ... 0x19 (4 Byte)   Bildhöhe in Pixel:    0x FA   ⇒   250d,
  • 0x1A ... 0x1B (2 Byte)  Anzahl der Farbebenen (immer auf 1 gesetzt),
  • 0x1C ... 0x1D (2 Byte)  Bits per Pixel (BPP):   0x0018   ⇒   24d,
  • 0x1E ... 0x21 (4 Byte)   Art der Datenkomprimierung,
  • 0x22 ... 0x25 (4 Byte)   Größe der Bitmap in Byte:   0x 02 DE 62   ⇒   188002d,
  • 0x26 ... 0x29 (4 Byte)   Horizontalauflösung in Pixel/Meter:   0x 26 70   ⇒   9840d,
  • 0x2A ... 0x2D (4 Byte)  Vertikalauflösung in Pixel/Meter:       0x 26 70   ⇒   9840d,
  • 0x2E ... 0x31 (4 Byte)   Anzahl der verwendeten Farben,
  • 0x32 ... 0x35 (4 Byte)   Anzahl der wichtigen Farben.

Anschließend beginnt mit „0x 43 2A 23” der Bilddatenbereich (im Beispiel jeweils drei Byte pro Pixel für R – G – B). Da auch hier (beim Intel–Prozessor) die Little–Endian–Byteanordnung gilt, bezeichnen diese Einträge die Farbwerte  $\rm R = 23$,  $\rm G = 2A$,  $\rm B = 43$  (jeweils hexadezimal) bzw.   $\rm R = 35$,  $\rm G = 42$,  $\rm B = 67$  (dezimal) .

Die Bilder auf der nächsten Seite machen deutlich, dass bereits wenige Fehler in Dateikopf ($14$  Byte) oder Informationsblock ($40$  Byte) genügen, um ein Bild völlig unbrauchbar zu machen. Der Header einer Multimedia–Datei sollte deshalb besonders geschützt werden. Bei BMP umfasst dieser Header indgesamt $54$  Byte.

Übertragungsfehler im Dateikopf und Informationsblock


Mit einer Bilderserie sollen die Auswirkungen von Übertragungsfehlern innerhalb von Dateikopf (0x00 ... 0x0D) und Informationsblock (0x0E ... 0x35) verdeutlicht werden. Die linke Abbildung zeigt den Hexadezimal–Dump der verfälschten Datei im Vergleich zur Originaldatei (rechts).

Hexdumps der verfälschten Datei und der Originaldatei

Nachfolgend sehen Sie die Bilder, die sich ergeben, wenn die fünf Fehlerblöcke sukzessive korrigiert werden:

Auswirkungen von Fehlern im BMP–Header
  • Die gegebene Datei lässt sich gar nicht öffnen. Korrigiert man die beiden ersten Byte (violette Markierung) von „0x 40 00” in „0x 42 4D”, so ergibt sich das linke obere, einheitlich graue Bild.
  • Korrigiert man die Bildbreite von „0x C5” in „0x FA”   ⇒   250d und die Bildhöhe von von „0x 7D” in „0x FA”   ⇒   250d (grüne Markierung), so ergibt sich das mittlere obere Bild bereits mit der richtigen Größe (250 x 250 Pixel), aber immer noch mit grauem Inhalt.
  • Zum rechten oberen Bild kommt man durch Berichtigung der Farbtiefe (Bits per Pixel, BPP) von „0x 08”   ⇒   8d auf „0x 18”   ⇒   24d (blaue Markierung). Danach erkennt man teilweise schon Inhalte, aber mit schlechter Qualität.
  • Durch Korrektur des roten Fehlerblocks im Bereich 0x0A ... 0x0D (Offset) von „0x 36 01”   in „0x 36 00”   erhält man schließlich das Originalbild „LNTprofs.bmp”.


BMP–Dateien nach BSC–Verfälschung


Einfluss von BSC–Fehlern auf BMP–Dateien, oben mit 24 BPP, unten mit 8 BPP

Die folgende Bilderserie zeigt den Einfluss von statistisch unabhängigen Fehlern (BSC–Modell) mit folgenden (Bit–)Fehlerwahrscheinlichkeiten:

$$p = 10^{-3}, \ p = 10^{-2}, \ p = 10^{-1}.$$

Der Dateiheader ist jeweils fehlerfrei.

  • Bei der oberen Reihe wurde vom Farbbild „LNTprofs.bmp” mit  $\rm 24$  Bits per Pixel ausgegangen; der eigentliche Bildbereich umfasst  $250 \cdot 250 \cdot 24 = 1.5 \cdot 10^6$ Bit.
  • Die untere Reihe basiert auf einem Graustufenbild mit  $\rm 8$  Bits per Pixel. Die Datei ist somit etwa um den Faktor  $3$  kleiner als die Farbdatei.


Man erkennt aus diesen Darstellungen:

  • Die Fehlerwahrscheinlichkeit  $p = 10^{-3}$  ist noch nicht allzu störend. Beim Farbbild sind damit etwa  $1500$  Bit und auch vergleichsweise ebensoviele Pixel verfälscht (statistische Aussagen). Beim Graustufenbild gibt es wegen der kleineren Datei nur etwa  $500$  Bitfehler.
  • Subjektiv ist der störende Eindruck von Bitfehlern beim Graustufenbild trotz kleinerer Bitfehlerzahl etwa genau so wie beim Farbbild, da sich bei letzterem manche Bitfehler nur in einer marginalen Farbveränderung auswirken.

BMP–Dateien mit Bündelfehlern


Betrachten wir nun anhand der folgenden Grafik den Einfluss von Bündelfehlern auf BMP–Dateien.

  • Das linke Bild  $\rm A$  zeigt die Originaldatei „Weiß.bmp” mit ausschließlich weißen Pixeln.
  • Das Ergebnis ist somit unabhängig von der Farbtiefe.
  • Die Datei „Weiß1.bmp” (1 BPP, 4046 Byte) ist jedoch nahezu um den Faktor  $24$  kleiner als die Datei „Weiß24.bmp” (24 BPP, 90456 Byte).
  • Nahezu deshalb, weil der Header bei beiden Dateien gleich groß ist und in der  $\text{1 BPP}$–Datei ebenfalls eine Farbtabelle mit enthalten ist.
Einfluss von Bündelfehlern auf BMP–Dateien


Bei den vier rechten Bildern sind jeweils Übertragungsfehler mit der (mittleren) Fehlerwahrscheinlichkeit  $p_{\rm M} = 1\%$  berücksichtigt. Man erkennt:

  • Die Fehler im Bild  $\rm B$  sind statistisch unabhängig und wurden gemäß dem  BSC–Modell  generiert. Sie sind zufällig über die gesamte Bildfläche verteilt.
  • Dagegen zeigen die Bilder  $\rm C$  und  $\rm D$  Bündelfehlerstrukturen nach dem  GE–Modell  mit unterschiedlichen Fehlerkorrelationsdauern  $D_{\rm K} \approx 8$  bzw.  $D_{\rm K} \approx 95$. Man erkennt aus der Fehlerstruktur, dass BMP–Bilder zeilenweise abgespeichert werden.
  • Bei den Schwarz–Weiß–Bildern (1 BPP)  $\rm B$,  $\rm C$  und  $\rm D$  ist im statistischen Mittel jedes 100. Pixel verfälscht. Beim Bild  $\rm E$  mit 24 BPP (True Color) gibt es demgegenüber trotz gleicher mittlerer Fehlerwahrscheinlichkeit  $p_{\rm M} = 1\%$  mehr Pixelverfälschungen.
  • Ein Vergleich der Bilder  $\rm D$  und  $\rm E$  zeigt die unterschiedlichen Korrelationsdauern bezogen auf Pixel  $(D_{\rm K} \approx 95$  gegenüber  $D_{\rm K} \approx 95/24 \approx 4)$. Außerdem erkennt man, dass im Bild  $\rm E$  die Fehlerpixel farbig sind.

Auswirkungen von Übertragungsfehlern auf Audios


Das WAVE-Dateiformat ist ein Containerformat zur digitalen Speicherung von Audiodaten, das auf dem von Microsoft für Windows definierten Resource Interchange File Format (RIFF) aufsetzt. Der besonders zu schützende Dateiheader umfasst bei WAVE–Dateien  $43$ Byte.

Enthalten sind meist sogenannte PCM-Rohdaten, also eine zeit- und wertdiskrete Darstellung des zeitlichen Verlaufs eines Signals. Die Qualität des aufgezeichneten Klangs hängt dann von zwei Werten ab, nämlich

  • der Abtastrate (Anzahl der Abtastwerte pro Zeiteinheit),
  • der Auflösung (Bit-Tiefe).


Wir demonstrieren zunächst den Einfluss von Übertragungsfehlern auf die Audiodatei „Stille.wav” mit ca. 10 Sekunden Dauer. Das heißt: Alles, was Sie hören, sind Übertragungsfehler.


Statistisch unabhängige Fehler entsprechend dem BSC–Modell

Bei den folgenden WAVE-Dateien beginnen wir mit dem  BSC–Parameter  $p= 10^{-5}$  und erhöhen diesen bis zu  $p= 10\%$.

  • $p$  gibt gleichzeitig die mittlere Fehlerwahrscheinlichkeit  $p_{\rm M}$  an, die auch als Bit Error Rate (BER) bezeichnet wird.
  • Jeweils angegeben ist auch die subjektive Einschätzung des Autors.


    $p=10^{-5}$   ⇒   Kaum hörbar.

    $p=10^{-4}$   ⇒   Noch nicht sehr störend.

    $p=10^{-3}$   ⇒   Merkbar störend.

    $p=10^{-2}$   ⇒   Warnung vor dem Öffnen.

    $p=10^{-1}$   ⇒   Nur für extrem Lärmunempfindliche geeignet.

Gegenüberstellung von statistisch unabhängigen Fehlern und Bündelfehlern

  • Die statistisch unabhängigen Fehler wurden wieder mit dem  BSC–Modell  generiert. Mittlere Fehlerwahrscheinlichkeit:   $p_{\rm M}=10^{-3}$.
  • Für die Generierung der Bündelfehler wurde das Kanalmodell nach  Gilbert–Elliott  (GE) verwendet.
  • Die mittlere Fehlerwahrscheinlichkeit beträgt auch hier  $p_{\rm M}=10^{-3}$.
  • Gegenübergestellt wird die sehr kurze  Korrelationsdauer  $D_{\rm K}= 8$  mit weitreichenden statistischen Bindungen   ⇒   $D_{\rm K}= 1000$.


Zunächst gehen wir wieder von der Datei „Stille.wav” aus. Man erkennt, dass eine kurze Fehlerkorrelationsdauer des GE–Modells im Ergebnis sich nicht allzu sehr von statistisch unabhängigen Fehlern unterscheidet, da jeder Abtastwert mit  $16$ Bit dargestellt wird.

    BSC–Modell.

    GE–Modell mit $D_{\rm K}= 8$.

    GE–Modell mit $D_{\rm K}= 1000$.

Auch beim nachfolgenden kurzen Musikstück gelten die gleichen Kanalparameter und man erkennt ähnliche Eigenschaften.

    BSC–Modell.

    GE–Modell mit $D_{\rm K}= 8$.

    GE–Modell mit $D_{\rm K}= 1000$.

Hinweis:   Alle (verfälschten) BMP–Bilder und WAV–Audios zu diesem Kapitel wurden mit dem Windows–Programm „Digitale Kanalmodelle & Multimedia” aus dem (früheren) Praktikum „Simulation Digitaler Übertragungssysteme ” am Lehrstuhl für Nachrichtentechnik der TU München erzeugt. Die folgenden Links stellen bereit:

  • das Windows-Programm  DKM   ⇒   Link verweist auf die ZIP-Version des Programms; und
  • die zugehörige  Praktikumsanleitung   ⇒   Link verweist auf die PDF-Version.


Aufgaben zum Kapitel


Aufgabe 5.8: BMP-Format

Aufgabe 5.8Z: Verfälschung von BMP-Bildern