Alle Inhalte dieser Webseite sind geschützt durch das copyright© by DVD Brennen Was ist ein Codec ( DivX
)
Die Einleitung
Videobearbeitung
am PC verlangt nach hohen Bandbreiten und viel Plattenplatz: Ein einzelnes RGB-Bild,
in der Fachsprache auch Frame genannt, benötigt in voller PAL-Fernsehauflösung
(768 x 576 Bildpunkte) und 24 Bit Farbtiefe (je 8 Bit für Rot, Grün
und Blau, auch Truecolor genannt) mehr als ein Megabyte an Speicher. Ein einfaches
Rechenbeispiel: 768 x 576 x 24 ergibt 10616832 Bits und das sind umgerechnet
etwa 1,3 Megabyte. Schnell wird es da auf der Platte eng!
Weil die europäischen Fernsehnormen PAL und Secam mit 25
Bildern pro Sekunde arbeiten, müsste ein Videobearbeitungssystem etwa 33
Megabyte pro Sekunde Durchsatz ermöglichen - auch moderne PCs sind da schnell
überfordert.
Grundsätzlich
gibt es zwei Ansätze, um dieses Problem zu lösen:
Zum einen kann man mit der Bandbreitenkeule zuschlagen, etwa bei der Datenübernahme
in den PC mittels Aufnahme auf RAID-Systeme mit riesigen und schnellen Festplatten.
Doch das Internet wird die erforderlichen Datenraten weder über die alten
Telefon- Kupferleitungen noch über moderne Glasfaser-Leitungen für
Millionen von Anwendern verkraften.
Den anderen Lösungsansatz bietet die Datenkompression: Mit ihrer Hilfe
lässt sich die vorhandene Bandbreite besser ausnutzen.
Die Datenkompession
Die Natur macht
es uns vor: Menschliche Sinnesorgane nehmen riesige Datenmengen auf - viel mehr,
als das Gehirn tatsächlich verarbeiten kann. Etwa 800 Megabyte visuelle
Informationen erreichen das Auge in jeder Sekunde. Bevor sie das Gehirn erreichen,
dampfen intelligente Reduktionsverfahren die schiere Datenmasse etwa um den
Faktor 100 ein, weniger wichtige Information bleiben einfach außen vor.
Technisch genutzte Kompressionsalgorithmen für Bilddaten eifern ihrem natürlichen
Vorbild nach - ohne allerdings dessen Effizienz derzeit zu erreichen.
Gleiches gilt für
akustische Signale: Nur ein Bruchteil der vom Trommelfell aufgenommen Informationen
erreicht das Gehirn. So wird zum Beispiel von zwei Tönen, die eine ähnliche
Tonhöhe haben und dicht beieinander liegen, nur der lautere Ton wahrgenommen.
Codec-Programmierer
(Codierung/Decodierung) nutzen diesen Hang zum Minimalismus: Alle audiovisuellen
Kompressionsverfahren orientieren sich an der maximalen Wahrnehmungsfähigkeit
des Menschen.
Sie filtern "überflüssige"
Daten aus, und zwar so geschickt, dass wir subjektiv keine qualitative Beeinträchtigung
der Sinneswahrnehmung empfinden. Die Algorithmen nehmen dem Gehirn praktisch
Arbeit ab.
Codecs verwenden
verlustfreie und die verlustbehaftete Kompressions- und Dekompressionstechniken.
Man kann die verlustfreie Kompression mit dem Prinzip einer Luftpumpe vergleichen:
Nach der Luftverdichtung sind nach wie vor noch alle Luftmoleküle vorhanden,
nur nehmen sie nun ein deutlich geringeres Volumen ein. Ähnlich ergeht
es auch den digitalen Video- und Audiosignalen: Sie enthalten überflüssige
Informationen (Molekül-freier Raum), deren Verzicht sich nicht oder nur
wenig auf die Bild- oder Tonqualität auswirken. Die nutzbaren Bits (Moleküle)
rücken einfach enger zusammen. So wird keine Information zerstört
und trotzdem ein Kompressionsfaktor von 2:1 bis 3:1 erreicht.
Die verlustbehaftete
Kompression hingegen entfernt Informationen aus dem Signal, die für die
Wahrnehmung irrelevant oder wenig wichtig ist. Der Vorteil, die hohe Kompressionsrate,
geht mit einem Nachteil einher: Diese Informationen gehen unwiederbringlich
verloren. Außerdem ist die Entscheidung schwierig, welche Daten wichtig
sind für eine ungestörte Wahrnehmung und welche nicht. Diese Frage
entscheidet der Codec-Programmierer abhängig von der Anwendung. Er kann
Einzelbilder komprimieren (Intraframe), Bildfolgen (Interframe) oder auch beide
Verfahren gemeinsam anwenden.
Die zeitliche Komprimierung
bringt nur dann einigermaßen brauchbare Ergebnisse, wenn ein Video wenig
Bewegung enthält. In diesem Fall gibt es von Bild zu Bild viele Wiederholungen.
Es genügt dann, nur die Differenz von Keyframe zu Keyframe zu speichern.
Das führt aber oft zu Pixelhaufen und Farbblöcken, die man auch als
Artefakte bezeichnet.
Filter machen gehörigen
Druck
Codecs leisten in kurzer Zeit beachtliches. Um hohe Bearbeitungsgeschwindigkeiten
zu erreichen, arbeitet ein Codec mit verschiedenen Stufen.
Sein erstes Werkzeug versucht erst gar nicht, das Video direkt
zu komprimieren, sondern macht es durch Filterverfahren »komprimierbarer«.
Filter eliminieren scharfe Kanten, die gleichzusetzen sind mit
hohen Frequenzen, und verringern so die Datenrate. Ein Filter sorgt für
die Umrechnung benachbarter Pixel, indem er einen Mittelwert bildet: Aus einer
dünnen schwarzen Linie neben einer weißen Linie entsteht zum Beispiel
eine breite graue Linie. Bereits diese Vorfilterung entscheidet maßgeblich
über die bei der Komprimierung erreichbare Videoqualität: Je aufwändiger
der Filter, desto besser die Bildqualität nach der Reduktion.
Als nächstes ist die Konvertierung des sogenannten Farbraums
an der Reihe (Color Space Conversion). Wieder gibt das menschliche Auge zu diesem
Schachzug die Anregung. Es nimmt Farben (Chrominanz, »U« und »V«)
viel schlechter wahr als Helligkeit (Luminanz, »Y«).
Das Fernsehen arbeitet deswegen im RGB- statt im YUV-Farbmodell:
Einer Luminanz-Bandbreite von 4,5 MHz steht eine Farb-Bandbreite von nur 1,5
MHz gegenüber. Allein die Umwandlung von RGB in YUV kann die Datenmenge
eines Signals etwa um die Hälfte reduzieren. Bereits analoge Videos verwenden
dieses Verfahren.
Ein wichtiges Kriterium für Videoberabeitung am PC ist
die Art der Digitalisierung. Das sogenannte Sampling misst die Spannung eines
analogen Signals in bestimmten Abständen und speichert sie als digitalen
Zahlenwert. Wegen der Sehschwäche des menschlichen Auges werden im YUV-Farbraum
die Farbsignale nur halb so oft gesampelt wie die Helligkeit.
Vier Messungen
von Y pro Zeiteinheit stehen nur je zwei Messungen von U und V gegenüber
(4:2:2-Modell). Von den 24 Bit pro Pixel des RGB-Signals wird auf 16 Bit pro
Pixel YUV reduziert, der Faktor liegt bei 2:1. Gut für den Anwender: Das
Signal hat immer noch volle Studioqualität.
Datenreduzierung
durch Skalierungs-Routinen
Die größte
Datenreduzierung erreicht die sogenannte Skalierung; die Verringerung der drei
Parameter Auflösung, Farbtiefe und Bildwiederholfrequenz. Manche Software-Codecs
verzichten ganz einfach auf drei von vier Pixeln der ursprünglichen Auflösung
(kodieren also nur 1/16 der Bildpunkte), wiederholen nur 10 Bilder pro Sekunde
(2,5:1) und arbeiten mit einer Farbtiefe von 8 Bit statt 24 Bit (3:1).
Der Komprimierungsfaktor: 16 x 2,5 x 3 ergibt 120:1, also ein
stark "gestauchtes" Videobild. Stehen diese drei wichtigen Parameter
vor der Komprimierung fest, so lassen sich Datenmenge und benötigte Rechenzeit
stark verringern, indem das Video zuvor auf diese niedrigere Auflösung,
Farbtiefe und Bildwiederholfrequenz heruntergerechnet wird.
Ein weiteres wichtiges Werkzeug ist die Transformation, die
bei Codecs wie JPEG, MJPEG, MPEG und Px64 Verwendung findet. Sie benutzen die
sogenannte DCT (Diskrete Cosinus-Transformation): Bildinformationen zerlegt
sie in Blöcke von 8x8 Pixeln und teilt sie in niedrige und hohe Frequenzbereiche
auf.
Das Zauberwort heißt Quantisierung
Der nächste Schritt der Komprimierung ist die Quantisierung: Sie reduziert
oder entfernt hohe Frequenzen (zum Beispiel scharfe Kanten). Das Ergebnis ist
ein Bild mit weicheren Konturen, die man aber wegen der Datenreduktion in Kauf
nimmt.
Bei der Quantisierung dienen wenige Bits als »Platzhalter«
für die Gesamtmenge. Bei leistungsfähigen Codecs reichen bei manchen
Bildern lediglich 2 Bits (4 Farben) aus, um das Bild adäquat zu beschreiben
(statt 8 Farbbits pro Pixel im RGB-Modell). Die Datenmenge lässt sich auf
diese Weise noch einmal dritteln.
Zum Schluss packen viele Codecs die Daten noch einmal verlustfrei
zusammen - ähnlich den Verfahren LHA, PKZIP etc., die man zum Komprimieren
von herkömmlichen Dateien verwendet. In der RLE-Methode (Run-Length Encoding)
ersetzt identische Bits durch Art und Anzahl (zum Beispiel 1111222 durch 4132,
also 4x1 und 3x2); das Huffman Coding ersetzt identische, häufig auftauchende
Bitfolgen durch Abkürzungen (wie beim Morsen). Die Komprimierung der Einzelbilder
ist damit abgeschlossen. Eine Kombination der sieben Intraframe-Verfahren lässt
von dem ein Megabyte großen Originalbildes nur noch 24 Kilobyte übrig.
Manche Codecs lassen es dabei bewenden, andere legen jetzt erst
richtig los. Denn bei Digitalvideos liegt die größte Datenredundanz
nicht innerhalb der Einzelbilder, sondern dazwischen. Viele Pixel verändern
sich von Bild zu Bild entweder gar nicht oder nur wenig, zum Beispiel Hintergründe.
Jetzt setzen Interframe-Codecs wie MPEG den Kompressionshebel
an: Sie sagen sozusagen die Pixelveränderungen über mehrere Bilder
hinweg voraus und speichern nur noch die Bildunterschiede ab, nicht aber die
Einzelbilder. Das spart viel Platz: MPEG 4 beispielsweise benötigt für
eine Videodatei in der Größe 320 x 240 Pixeln bei vergleichbarer
Qualität nur ein Viertel des Platzes, den Cinepak trotz Komprimierung braucht.
Predictive Coding legt ein komprimiertes Referenzbild fest (I-
Frame oder Key-Frame - wie bei Animationsberechnungen). Von diesem aus wird
ein weiteres, P-Frame genanntes Bild vorhergesagt - bei MPEG das nächste,
übernächste oder vierte. Aus beiden - dem I- und dem P- Frame - können
dazwischenliegende Bilder errechnet werden (B-Frames). So »mogelt«
sich der Codec durch das Movie, bis das nächste I-Frame wieder gesicherte
Daten liefert.
|