Skip to main content

Streaming – Datenvolumen und Kompression bei eigenen Videos

Berücksichtigt man bei der Aufzeichnung von Videos, dass das Datenvolumen von der Aufzeichnungsqualität abhängig ist und schnell die Grenzen Ihres PCs erreicht. Für ein einzelnes Fernsehbild benötigen Sie schon bei einer Größe von 640×400 (also 256.000) Bildpunkten und einer Farbtiefe von 16 Bit (216 also 65.536 Farben) ein halbes Megabyte (1 MB entspricht 1.024 KB und 1 KB sind wiederum 1.024 Byte) Speicherkapazität. Multiplizieren Sie zur Berechnung des Speicherplatzes einfach die Anzahl der Bildpunkte (256.000 Pixel) mit der der Bytes, die Sie pro Pixel benötigen (16 Bit = 2 Bytes/Pixel).

Bei einer Bildwiederholfrequenz von 25 Bildern pro Sekunde (fps = Frames per Second) benötigen Sie schon über 12 MB/s. Hinzu kommen noch Audiodaten, die bei 44,1 kHz und 16-Bit-Stereo noch einmal mit ca. 172 Kilobytes pro Sekunde zu Buche schlagen (44.100 (Hz) * 2 (Stereo) * 2 (16 Bit) = 176.400 Byte/s).

Für eine Minute Video in dieser Qualität benötigen Sie schon ca. 744 MB. In der Stunde sind das mehr als 44 Gigabytes (1 GB entspricht 1.024 MB).

streamingtechnikDas Datenvolumen lässt sich durch Qualitätsverzicht drastisch reduzieren. Halbieren Sie die Breite und Höhe Ihres Bildes, so reduziert sich das Datenvolumen auf ein Viertel. Theoretisch können Sie das Datenvolumen eines Videoclips auch durch die Verringerung der Farbtiefe verkleinern. Videos mit 8-Bit-Farbtiefe (256 Farben) werden allerdings von den meisten Video-Tools gesondert behandelt. Während bei 16-Bit-Videos die zwei Bytes je Pixel die echte Farbinformation enthalten, wird bei 8-Bit-Videos mit einer Farbpalette gearbeitet. Es wird zu dem Video eine Palette abgespeichert, die 256 Farbeinträge hat. Jeder Eintrag enthält eine Farbinformation. Die Werte der einzelnen Pixel zeigen dann auf einen Farbeintrag in der Palette. Dieses Verfahren klingt im ersten Augenblick etwas umständlich, hat jedoch auch Vorteile. Da die Farbinformation innerhalb der Palette größer als 8 Bit ist, enthält die Palette zwar nur 256 Farben, aber aus einem Farbspektrum von z.B. 65.536 Farben. Einzelne 8-Bit-Bilder mit gut gewählten Paletten sehen deshalb oft nicht viel schlechter aus als 16-Bit-Bilder.

Da viele Video-Tools aber nur eine Palette pro Videoclip erstellen, lässt die Qualität bei häufigen Farbwechseln schnell zu wünschen übrig. Für kurze Clips mit wenigen Szenenwechseln ist dieses Verfahren aber oft brauchbar.

Durch die Verringerung der Bildwiederholfrequenz lässt sich die Datenrate Ihres Clips nahezu beliebig reduzieren. Bei 12 Bildern pro Sekunde erhalten Sie noch eine recht flüssige Darstellung. 6 fps lassen die Bewegungen schon etwas ruckhafter werden. Bei 3 Bildern wirkt Ihr Clip schon eher wie ein Daumenkino und wird mit einem Frame pro Sekunde schließlich zur Dia-Show.

Auch bei den Audiodaten können Sie noch einiges an Speicherplatz sparen. Steigen Sie von Stereo auf Mono um, benötigen Sie nur noch die Hälfte des Speicherplatzes. Eine Verringerung von 16 auf 8 Bit reduziert das Volumen noch einmal um die Hälfte. Auch ein Reduzieren der Abtastrate verringert das Datenvolumen proportional. Bei 8 Bit und 11,025 kHz oder 8 kHz Mono stoßen Sie aber an eine magische Grenze. Während die 11,025-kHz-Variante noch recht brauchbar ist (oft als „Telefonqualität“ bezeichnet), klingt die 8-kHz-Version sehr verknarrt und erinnert an sehr alte Mittelwellen-Transistorradios.

Wenn Sie sich also auf eine briefmarkengroße (80×60 Pixel) Dia-Show mit knarrendem Ton beschränken, reduzieren Sie Ihr Datenvolumen auf 17 KB/s. Interessanterweise ist das Verhältnis Audio- zu Videodaten jetzt nicht mehr 1:75, sondern nur noch 1:1. Um eine Stunde dieses Sparvideos aufzuzeichnen, benötigen Sie lediglich 60 MB. Aber wer will die schon sehen?

Videokompression

Kompressionsalgorithmen bieten Ihnen eine andere Möglichkeit, das Datenvolumen Ihrer Videodateien zu verringern. Da die Verringerung der Datenmenge auf völlig anderem Wege erreicht wird, ist die mit einer gegebenen Datenmenge erzielbare Qualität wesentlich höher. Prinzipiell ist zwischen verlustfreien und verlustbehafteten Kompressionsarten zu unterscheiden. Verlustfreie Verfahren gewährleisten, dass einmal komprimierte und wieder dekomprimierte Daten den Originaldaten exakt entsprechen.

Ein einfaches Verfahren zur verlustfreien Kompression ist die Lauflängencodierung (RLE = Run Length Encoding). Der Algorithmus vergleicht einfach die Farbwerte der benachbarten Pixel. Sind sie identisch, wird nicht jedes Pixel separat gespeichert, sondern nur einmal die Farbe und die Anzahl der Wiederholungen. Besonders Bilder mit größeren Farbflächen lassen sich so erstaunlich gut komprimieren. Stellen Sie sich einmal die Pixel in einem Landschaftsbild vor. Der Himmel würde vielleicht so aussehen: (blau, blau, blau, blau, blau, blau, weiß, … ). Nach der Kompression wird daraus (6*blau, weiß, ...). Die Einsparung ist enorm.

MPEG, Cinepak und Indeo

Komplizierte verlustfreie Verfahren vergleichen nicht nur die waagerecht nebeneinanderliegenden Pixel, sondern auch die übereinanderliegenden Zeilen, und speichern lediglich die Differenzen ab. Noch anspruchsvollere und leistungsfähigere Verfahren, wie MPEG, Cinepak und Indeo, vergleichen aufeinanderfolgende Bilder miteinander und speichern zu jedem Bild nur die Punkte ab, die sich im Vergleich zu dem oder den Vorgängerbildern geändert haben. Die hierdurch erzielte Platzersparnis ist meist sehr groß, allerdings benötigen solche Verfahren wesentlich mehr Rechnerleistung. Ein Nachteil dieser Codierungsvariante ist der, dass Sie so komprimierte Videos nicht ohne weiteres rückwärts abspielen können. Beim normalen Abspielen können Sie auch nicht an beliebiger Stelle beginnen, sondern nur an komplett gespeicherten Bildern, sogenannten Keyframes.

videokompressionDie Tatsache, dass besonders bei hochauflösenden Bildern benachbarte Bildpunkte oft ähnliche Farbwerte haben, führt zu einer weiteren Kompressionsmöglichkeit. So ist es in vielen Fällen durchaus sinnvoll, statt der kompletten Farbinformation des Pixels nur die Helligkeits- oder Farbdifferenz zu seinen benachbarten Bildpunkten zu speichern. Die Daten für die Berechnung der Farbdifferenzen werden oft durch Cosinus-Transformationen berechnet. An dem bereits erwähnten Beispiel mit dem Himmel können Sie sich auch dieses Verfahren veranschaulichen. Bei einem unkomprimierten Bild mit einer Farbtiefe von 24 Bit benötigen Sie nun einmal 24 Bit für jeden Bildpunkt. Da sich die Bildpunkte in einem bewölkten Himmel aber oft nur in ihrer Helligkeit, und nicht in ihrer Farbzusammensetzung, unterscheiden, können Sie diese Information über den Helligkeitsunterschied leicht in wenigen Bits unterbringen.

Verlustbehaftete Verfahren bedienen sich oft der gleichen Techniken wie die verlustfreien. Es werden jedoch bewusst Abweichungen zwischen dem Originalbild und dem codierten/decodierten Bild in Kauf genommen, wenn dies der Speicherplatzeinsparung dient.

Bei der Lauflängencodierung wird der Vergleich der benachbarten Bildpunkte etwas großzügiger gehandhabt, so dass Bildpunkte auch dann noch zusammen codiert werden, wenn sie nicht hundertprozentig den gleichen Farbwert haben. Bei der Codierung von Farbdifferenzen lassen Sie ein oder zwei weniger signifikante Bits einfach unter den Tisch fallen. Diese Einsparungen verringern den Platzbedarf und liefern trotzdem erstaunlich gute Ergebnisse.

Ein weiterer Ansatz zur Datenreduktion ist die Informationsgewichtung. Die Entwickler von Kompressionsverfahren gehen dabei sehr wissenschaftlich vor, wenn es darum geht, zu ermitteln, welche Bits am ehesten weggelassen werden können, ohne den Bildinhalt signifikant zu verändern. Aus der Biologie ist längst bekannt, dass das menschliche Auge Helligkeitsunterschiede wesentlich genauer wahrnehmen kann als Farbunterschiede. Daraus zogen die Wissenschaftler den Schluss, dass sie bei der Codierung mehr Bits für die Helligkeitsinformation benötigen als für die Farbinformation. Das Bild wird in unterschiedlich feine Bereiche eingeteilt, so dass die Auflösung für die Helligkeitsinformation wesentlich höher ist, als die für die Farbinformation. So wird gewährleistet, dass nur so viel Information gespeichert wird, wie das Auge verarbeitet. Eine übliche Informationscodierung ist die Verteilung 4:2:2 für das YUV-Signal. Hierbei werden von jedem Byte vier Bits für die Helligkeitsinformation (Y-Signal) und nur 2 Bits für die Farbdifferenzsignale U und V verwendet.

MPEG

Das MPEG-Verfahren weist noch einen weiteren Kniff auf. Zusätzlich zu den bereits vorgestellten Verfahren zur Kompression von Bildern und Bildfolgen codiert es auch Bewegungen von Bildabschnitten. Stellen Sie sich eine Videosequenz vor, in der sich ein Teil der Szenerie bewegt. Ein Ball hüpft durch einen Garten oder eine Palme wiegt sich am Strand. Eigentlich sind alle relevanten Bildinformationen bereits in den vorangegangenen Bildern vorhanden. Sie ändern nur ihre Position. Um dieser Tatsache Rechnung zu tragen, zerlegen MPEG-Kompressoren die Bildinformationen in kleine Teilblöcke. Bei der Codierung der Folgebilder überprüfen Sie, ob die Information bereits in einem anderen Bildbereich eines der Vorgängerbilder vorhanden war. Ist das der Fall, so wird lediglich eine Information über die Art der Bewegung abgespeichert. Die erneute Speicherung der Bildinformationen entfällt hier.

Das MPEG-Verfahren war lange das Verfahren mit der besten Kompressionsrate. Es komprimiert Audio- und Videodaten. Hierbei handelt es sich allerdings um ein stark asymmetrisches Verfahren. Es benötigt wesentlich mehr Zeit zum Komprimieren als zum Dekomprimieren. Aufgrund der Komplexität und Vielschichtigkeit besonders der Videokompression sind MPEG-Kompressoren, die eine akzeptable Geschwindigkeit aufweisen, gegenwärtig leider nur als Hardwarezusätze realisiert. Das ist einsichtig, wenn Sie sich vor Augen halten, dass der Videostrom mehrfach nach dem Auftreten unterschiedlicher Redundanzen durchsucht wird.

Der MPEG-Video-Encoder geht dabei in etwa folgendermaßen vor:

  • Der Encoder unterteilt zunächst den Video-Datenstrom in zwei Datenströme, die die Helligkeitsinformationen (Y) und Farbinformationen (B und R) der Bilder enthalten. Dies ist sinnvoll, da so die Daten, den Fähigkeiten des Auges entsprechend, mit unterschiedlicher Qualität komprimieren kann.
  • Die einzelnen Bilder unterteilt er in Blöcke zu 16×16 Pixel. Die Helligkeitsinformationen werden in dieser Auflösung gespeichert. Die Farbinformationen reduziert er auf je 8×8 Pixel für den B- und R-Kanal.

Um die Pixel-Informationen zu verdichten, wandelt der Codec (Codec ist eine englische Abkürzung für Kodierer/Dekodierer (COder/DECoder) und bezeichnet einen Treiber, der die Aufgabe des Komprimierens und des Dekomprimierens gleichermaßen übernimmt) die Daten der einzelnen Blöcke mit der diskreten Cosinus-Transformation (DCT) in ein gepacktes Format um. Mit einem Quantisierungsverfahren gleicht er dann die benachbarten Bildpunkte einander an, um so durch geringe Änderung der Bildinformation zu Werten zu gelangen, die sich leichter verdichten lassen. Der Kompressor verdichtet die so codierten Bildblöcke abschließend mit dem RLE-Verfahren. Dieses Verdichtungsverfahren entspricht in etwa dem JPEG-Algorithmus.

bframeAnschließend codiert der Kompressor die Bilder in Abhängigkeit von ihrer Ähnlichkeit zu den vorangegangenen Frames. Sind die Änderungen zu groß, wird die gesamte Bildinformation als sogenanntes „I-Frame“ (Intra-Frame) gespeichert.

Treten nur geringe Abweichungen auf, wird ein Inter-Frame codiert. Es enthält nur Informationen über die geänderten Bildbereiche. Findet der Kompressor in einem der Vorgängerbilder an einer anderen Stelle Blöcke, die den veränderten Bildbereichen sehr ähneln, so wird nur die Bewegungsinformation des Bereiches gespeichert. Bilder, die sich auf Blöcke aus vorangegangenen Bildern beziehen, bezeichnet man als „P-Frame“ (Predicted Frames)

In einem weiteren Durchlauf prüft der Encoder, ob sich Bildinformationen aus nachfolgenden Frames verwenden lassen. Bilder, die sich auf Blöcke aus vorangegangenen und nachfolgenden Frames beziehen, heißen B-Frames (Bidirectional Frames).

Cinepak

Cinepak-Kompressoren komprimieren ebenfalls sowohl die einzelnen Frames als auch die Veränderungen zwischen den Bildern. Da sie dabei im Wesentlichen aber nur Bildbereiche berücksichtigen, die von einem Frame zum nächsten unverändert bleiben, erreichen sie nicht den hohen Kompressionsgrad von MPEG. Aus demselben Grund stellen sie aber auch nicht so hohe Ansprüche an die Rechnerleistung. Cinepak-Codecs, die als reine Softwarelösung realisiert sind, leisten durchaus gute Dienste. Es darf jedoch nicht vergessen werden, dass es sich hierbei um ein verlustbehaftetes Verfahren handelt. Die einmal komprimierten Videodaten entsprechen nicht mehr hundertprozentig dem Original. Der Grad der Abweichung ist dabei umgekehrt proportional zum Grad der Verdichtung. Je stärker Sie komprimieren, umso höher sind die Qualitätseinbußen. Der zusätzliche Verlust bei versehentlicher Kompression von bereits komprimierten Videodaten ist aber erfreulich gering.

Intel Indeo

Der Intel-Indeo-Codec komprimiert ebenfalls Bilder und Bildfolgen. Seine Leistungen sind mit denen von Cinepak-Kompressoren vergleichbar. Die Vor- und Nachteile des Verfahrens gegenüber MPEG sind entsprechend.

RLE-Kompression

RLE-Kompressoren wie Microsoft RLE8 verdichten die Daten ausschließlich nach dem Lauflängenverfahren. Sie komprimieren nur einzelne Bilder und verringern das Datenvolumen von Videosequenzen daher nicht so stark wie die vorangegangenen Verfahren. Sie sind leicht zu implementieren und zeichnen sich meist durch eine hohe Arbeitsgeschwindigkeit aus. Ihre besten Leistungen zeigen sie bei Computeranimationen, bei denen naturgemäß eher große gleichfarbige Flächen auftreten als bei echten Videos. Auch bei großflächigen 8-Bit-Videos können unter Umständen noch recht gute Ergebnisse erzielt werden. RLE-Verfahren zählen zu den verlustfreien Verfahren. Die decodierten Bilder entsprechen völlig den Originalvorlagen.

Microsoft Video 1

Der Microsoft-Video-1-Codec codiert einzelne Frames nach Farbdifferenzen. Dadurch erzielt er nicht so gute Ergebnisse wie Cinepak und Indeo, erreicht aber einen Geschwindigkeitsvorteil beim Komprimieren. Er liefert auch mit echten Videobildern gute Ergebnisse.

Qualitätsverlust bei Windows Codecs

Die Windows-Codecs bieten meistens eine Einstellmöglichkeit für die gewünschte Qualität. Mit einem Scrollbar können Sie den Kompressionsgrad oder die Qualität einstellen. Es gilt: Je höher die Qualität, desto geringer die Kompressionsrate. Besonders Verfahren, die Bildfolgen komprimieren, zeigen bei extrem hohen Kompressionsraten unerwünschte Nebeneffekte, die in der Art der Informationsverdichtung begründet liegen. Im Ablauf der Videosequenz zeigen sich oftmals Punkte, Linien oder Flächen mit konstanter Farbe, die den Eindruck des Bewegungsablaufes stören. Solche Artefakte entstehen durch die zu großzügige Auslegung bei der Suche nach unveränderten Bildbereichen.

Ähnliche Beträge - die Sie interessieren


Ähnliche Beiträge



Kommentare


Der passende DSL-Tarif zum optimalen Streaming – streamingz.de 4. Januar 2017 um 10:51

[…] Datenvolumen & Kompression […]

Antworten

Du hast eine Frage oder eine Meinung zum Artikel? Teile sie mit uns!

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *