|
Diese drei Abkürzungen stehen für Constant Bit Rate, Variable Bit
Rate und Average (=durchschnittliche) Bit Rate.
Mit CBR verwendet der Encoder die gleiche Anzahl von Bits in jedem
Frame, unabhängig davon, wieviele Bits er tatsächlich bräuchte. Dies hat
den Nachteil, das z.B. ein komplett schwarzes Bild oder absolute Stille
in einem Audio-Frame eine Menge Bits veschwendet, während Bilder oder
Audio-Frames mit einer Menge Elementen von diesen Bits profitieren
könnten.
VBR nimmt nun soviele Bits, wie tatsächlich gebraucht werden. So
bekommt ein komplett schwarzes Bild nur einige wenige Bits und ein
komplexes Bild bekommt soviele Bits wie es benötigt. Während dies die
beste Qualität erzeugt, ist die endgültige Dateigröße nicht mehr
vorhersagbar.
Das ist die Stelle, an der ABR in Spiel kommt. Du gibst eine
durchschnittliche Bitrate an,die Du erreichen möchtest, und der Encoder
verteilt die Bits, die ihm zur Verfügung stehen. So spart der Encoder
bei schwarzen Bildern Bits ein, die dann komplexeren Bildern zur
Verfügung stehen. Es ist somit ein Kompromiss zwischen Qualität und
Vorhersagbarkeit der Dateilänge.
|
Global motion compensation (GMC) hilft beim Zoomen und Schwenken der
Kamera, wenn sich Objekte nur in ihrer Größe oder Position verändern,
ihren Typ dabei aber beibehalten. Die Aktivierung von GMC ist für
Naturfilme oder Landschafts-Dokumentationen zu empfehlen, die
komprimiert werden sollen.
|
Vielleicht ist Dir aufgefallen, dass Videos manchmal vor dem Kodieren
mit schwarzen Balken eingerahmt sind. Dieser Vorgang nennt sich
letterboxing. Er kann bei einigen Abspielern dabei helfen, das korrekte
Seitenverhältnis zu erhalten. Andere nutzen die schwarzen Balken zum
Anzeigen von Untertiteln. Der Nachteil ist, dass diese schwarzen Balken
das Bild vergrößern und daher mehr Bandbreite zum Kodieren benötigen,
obgleich komplett schwarze Teile nicht sehr viel Platz beanspruchen -
aber gerade die Übergänge zwischen dem Bild und den schwarzen Streifen
brauchen sehr viele Bits.
|
GOP:
-
beginnt mit einem "I"-Frame, gefolgt normalerweise von einer
Anzahl von "P" und "B"-Frames
-
jede GOP ist unabhängig: alle Frames, die für Hochrechnungen
benötigt werden, sind in jedem GOP vorhanden.
-
GOPs können so klein sein wie ein einzelner I-Frame oder so groß
wie gewünscht, aber normalerweise nicht mehr als 15 Frames für
MPEG2. MPEG4 GOPs können so groß wie das maximale
Keyframe-Intervall sein (üblicherweise 200-300 frames). Die
meisten Codecs erlauben GOPs beliebiger Länge.
-
Je länger eine GOP, desto effizienter aber unrobuster die Kodierung.
I-frame:
-
"Intra-coded" frames: Durchschnittliche 7:1-Reduzierung.
-
wie JPEG, jedes Video-Bild ist unterteilt in Blöcke zu 8x8 Pixeln
aus Y, R-Y, and B-Y
-
Blöcke sind in "macroblocks" zu 16x16 gruppiert.
-
Die Standards besagen, dass Macroblocks horizontal in Scheiben
gruppiert werden, die eine ähnliche durchschnittlichen Blockhöhe
besitzen, obgleich tatsächlich vorhandene Codecs dieser Regel
nicht notwendigerweisefolgen.
-
Außerdem besagen die Standards, dass mehrere Scheiben einen Frame
formen, und dass diese Frames die sich ergebenden "I"-Frames sind,
obgleich Codecs auch dieser Vorgabe nicht folgen.
P-frame:
-
P-Frames sind auf der Basis vorhergehender I- oder P-Frames
zuzüglich der Daten veränderter Macroblocks vorhergesagte Frames.
-
Durchschnittlich etwa 20:1 Reduzierung, oder etwa die Hälfte der
Größe eine I-frames
B-frame:
-
Bidirektional vorhersagbare Frames basierend auf dem Aussehen und
der Position vergangener und folgender Frame-Macroblöcke.
-
B-Frames benötigen weniger Daten als P-Frames, durchschnittlich
etwa 50:1 Reduzierung.
-
BFrames benötigen mehr decoder-buffer-Speicher da zwei Frames
während der Rekonstruktion miteinander verglichen werden.
-
B frames benötigen außerdem einer änderung der
Kodierungsreihenfolge: Frames, die sich vom Encoder zum Decoder
bewegen, sind NICHT in der Reihenfolge der Präsentation.
Für jeden Macroblock in einem P-Frame entscheidet der Encoder, ob er
diesen Block bereits aus dem vorhergeheneden Frame kennt, oder ob es
sich um einen komplett neuen Frame handelt. Im ersten Fall codiert er
nur die Unterschiede (INTER mode). Im letzen Fall codiert er den
gesamten Macroblock (INTRA mode).
Die Situation für B-Frames ist wie die folgende: "Ich kennen diesen
Block nicht" (INTRA mode), "Ich kenne diesen Block vom vorhergehenden I-
oder P-Frame (backward mode)", "dieser Block sieht aus wie ein Block im
nächsten Frame (forward mode)", oder "dieser Block sieht aus wie eine
Mischung des vorhergehenden und des nachfolgenden Frames (bidirectional
mode".
MPEG1 GOPs sind immer "IBBPBBPBBPBB" (dies ist die Reihenfolge in der
die Frames angezeigt werden, nicht notwendigerweise die Reihenfolge in
der sie kodiert/gespeichert werden). MPEG2 GOPs sehen genauso aus. Sie
können auch drei B-frames enthalten. Der DivX5 MPEG4 codec benutzt nur
"IBPBPBPBPB", da es leichter zu implementieren ist, und weil
B-Frame-Support for MPEG4-Codecs ziemlich neu ist. Du kannst in Zukunft
mehr B-Frames erwarten.
|
Quarter pel oder Quarter Pixel wirkt auf die Präzision beim Filtern von
Macroblöcken. DivX 4 arbeitet mit Half Pel (1.5, 1.5); 1.25, 1.75, etc.
sind beginnend mit DivX 5 möglich. Die konventionelle Teilung eines
Bildes in Macroblöcke wird auf der Basis von Integer-Zahlen - 16x16 oder
8x8 - unter Verwendung der ergänzenden Information von dem, was als
Virtual Block bekannt ist, verfeinert. Dies erlaubt es, Bewegungen von
Objekten in Bildern realistischer wiederzugeben.
|
|
|