summaryrefslogtreecommitdiffstats
path: root/DOCS/xml/de/encoding-guide.xml
diff options
context:
space:
mode:
authorwm4 <wm4@mplayer2.org>2012-07-28 17:07:49 +0200
committerwm4 <wm4@mplayer2.org>2012-07-28 17:24:05 +0200
commit51e198c2a1e43b74ad35ef358628dcd8791158d9 (patch)
tree60f6c2255ed912a7a4866b71728104a2cb2442f1 /DOCS/xml/de/encoding-guide.xml
parent2793e7eb70a342b346788f83e1ed660c8e0d491e (diff)
parent7dfaaa95104a8e6dc024fddaf1b49c71768f1be7 (diff)
downloadmpv-51e198c2a1e43b74ad35ef358628dcd8791158d9.tar.bz2
mpv-51e198c2a1e43b74ad35ef358628dcd8791158d9.tar.xz
Merge remote-tracking branch 'origin/master'
Conflicts: .gitignore bstr.c cfg-mplayer.h defaultopts.c libvo/video_out.c The conflict in bstr.c is due to uau adding a bstr_getline function in commit 2ba8b91a97e7e8. This function already existed in this branch. While uau's function is obviously derived from mine, it's incompatible. His function preserves line breaks, while mine strips them. Add a bstr_strip_linebreaks function, fix all other uses of bstr_getline, and pick uau's implementation. In .gitignore, change vo_gl3_shaders.h to use an absolute path additional to resolving the merge conflict.
Diffstat (limited to 'DOCS/xml/de/encoding-guide.xml')
-rw-r--r--DOCS/xml/de/encoding-guide.xml5758
1 files changed, 0 insertions, 5758 deletions
diff --git a/DOCS/xml/de/encoding-guide.xml b/DOCS/xml/de/encoding-guide.xml
deleted file mode 100644
index 0ce558f997..0000000000
--- a/DOCS/xml/de/encoding-guide.xml
+++ /dev/null
@@ -1,5758 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- in sync with r24549 -->
-<!-- missing cosmetic commit 21537 -->
-<chapter id="encoding-guide">
- <title>Encodieren mit <application>MEncoder</application></title>
-
- <sect1 id="menc-feat-dvd-mpeg4">
- <title>Erzeugen eines hochwertigen MPEG-4-Rips ("DivX") eines DVD-Films</title>
-
- <para>
- Eine häufig gestellte Frage ist
- "Wie mache ich den hochwertigsten Rip für eine gegebene Größe?".
- Eine weitere Frage ist
- "Wie mache ich den qualitativ bestmöglichen DVD-Rip? Die Dateigröße ist
- mir egal, ich will einfach nur die beste Qualität."
- </para>
-
- <para>
- Die letzte Frage ist zumindest etwas falsch gestellt. Wenn du dir
- schließlich keine Gedanken um die Dateigröße machst, warum kopierst Du
- dann nicht einfach den kompletten MPEG-2-Videostream der DVD?
- Sicherlich, deine AVI wird am Ende 5GB groß sein, so oder so, jedoch ist
- dies mit Sicherheit deine beste Option, wenn du die beste Qualität
- erhalten willst und dich nicht um die Größe kümmerst.
- </para>
-
- <para>
- Tatsache ist, der Grund eine DVD in MPEG-4 umzuencodieren ist
- gerade <emphasis role="bold">weil</emphasis> dir die Größe wichtig ist.
- </para>
-
- <para>
- Es ist sehr schwierig, ein Rezept zum Erzeugen eines sehr
- hochwertigen DVD-Rips anzubieten. Es gilt mehrere Faktoren zu
- berücksichtigen, und du solltest dich mit diesen Details auskennen oder
- du wirst voraussichtlich am Ende von den Resultaten enttäuscht.
- Nachfolgend werden wir einige dieser Themen etwas näher untersuchen
- und uns danach ein Beispiel ansehen. Wir gehen davon aus, dass Du
- <systemitem class="library">libavcodec</systemitem> zum Encodieren des
- Videos verwendest, obwohl diese Theorie genauso gut auf andere Codecs
- zutrifft.
- </para>
-
- <para>
- Ist dies alles zu viel für dich, solltest du womöglich auf eins der vielen
- guten Frontends zurückgreifen, die in der
- <ulink url="http://www.mplayerhq.hu/design7/projects.html#mencoder_frontends">MEncoder-Sektion</ulink>
- unserer diesbezüglichen Projektseite zu finden sind.
- Auf diese Weise solltest du in der Lage sein, hochwertige Rips zu
- erhalten ohne viel nachdenken zu müssen, da die meisten dieser Tools dazu entworfen
- wurden, clevere Entscheidungen für dich zu treffen.
- </para>
-
- <sect2 id="menc-feat-dvd-mpeg4-preparing-encode">
- <title>Vorbereitung aufs Encodieren: Identifiziere Quellmaterial und Framerate</title>
- <para>
- Bevor du über das Encodieren eines Films nachdenkst, solltest du einige einleitende
- Schritte vornehmen.
- </para>
-
- <para>
- Der erste und allerwichtigste Schritt vor dem Encodieren sollte sein,
- festzustellen, mit welchem Inhaltstyp du umgehst.
- Kommt dein Quellmaterial von einer DVD oder einem Rundfunk-/Kabel-/Satelliten-TV,
- wird es in einem von zwei Formaten abgespeichert: NTSC für Nord-Amerika und Japan,
- PAL für Europa usw.
- Es ist wichtig, sich klar zu machen, dass dies ganz einfach die Formatierung
- für die Präsentation auf einem Fernsehgerät ist und häufig
- <emphasis role="bold">nicht</emphasis> mit dem originalen Format des Films
- korrespondiert. Die Erfahrung zeigt, dass NTSC-Material schwieriger zu
- encodieren ist, da mehr Elemente in der Quelle zu identifizieren sind.
- Um eine geeignete Encodierung zu produzieren, solltest du das originale
- Format kennen.
- Fehler, dies sollte man berücksichtigen, führen zu diversen Fehlerstellen
- in deiner Encodierung, einschließlich hässlicher Kammartefakte (combing/interlacing)
- und doppelten oder gar verlorenen Frames.
- Abgesehen davon, dass sie unschön sind, beeinflussen diese Artefakte die
- Codierungseffizienz negativ:
- Du erhältst eine schlechtere Qualität pro Bitrateneinheit.
- </para>
-
- <sect3 id="menc-feat-dvd-mpeg4-preparing-encode-fps">
- <title>Identifizieren der Quellframerate</title>
- <para>
- Hier ist eine Liste der verbreiteten Typen des Quellmaterials, in der Du
- diese und ihre Eigenschaften voraussichtlich finden wirst:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis role="bold">Standardfilm</emphasis>: Produziert für
- theatralische Anzeige bei 24fps.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">PAL-Video</emphasis>: Aufgenommen mit einer
- PAL-Videokamera bei 50 Feldern pro Sekunde.
- Ein Feld besteht ganz einfach aus den ungerade oder gerade nummerierten
- Zeilen eines Frames.
- Das Fernsehen wurde entworfen, diese Felder als billige Form einer
- analogen Komprimierung im Wechsel zu aktualisieren.
- Das menschliche Auge kompensiert dies angeblich, aber wenn du
- Interlacing einmal verstanden hast, wirst du lernen, es auch auf
- dem TV-Bildschirm zu erkennen und nie wieder Spass am Fernsehen haben.
- Zwei Felder machen <emphasis role="bold">keinen</emphasis> kompletten
- Frame, da sie in einer 50-stel Sekunde zeitlich getrennt aufgenommen
- werden und so nicht Schlange stehen solange keine Bewegung da ist.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">NTSC-Video</emphasis>: Aufgenommen mit einer
- NTSC-Videokamera bei 60000/1001 Feldern pro Sekunde oder 60 Feldern
- pro Sekunde zu Zeiten vor dem Farbfernsehen.
- Ansonsten ähnlich wie PAL.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Animation</emphasis>: Üblicherweise bei
- 24fps gezeichnet, kommt jedoch auch in Varianten mit gemischter
- Framerate vor.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Computer Graphics (CG)</emphasis>: Kann
- irgendeine Framerate sein, jedoch sind einige üblicher als andere;
- 24 und 30 Frames pro Sekunde sind typisch für NTSC und 25fps ist
- typisch für PAL.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Alter Film</emphasis>: Diverse niedrigere
- Frameraten.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3 id="menc-feat-dvd-mpeg4-preparing-encode-material">
- <title>Identifizieren des Quellmaterials</title>
- <para>
- Filme, die sich aus Frames zusammensetzen, werden den progressiven
- zugeordnet, während die aus unabhängigen Feldern bestehenden
- entweder interlaced (engl. für verschachteln) oder Video
- genannt werden - somit ist letzterer Terminus zweideutig.
- </para>
- <para>
- Um das ganze noch komplizierter zu machen, sind manche Filme ein
- Gemisch aus einigen den oben beschriebenen Formen.
- </para>
- <para>
- Das wichtigste Unterscheidungsmerkmal zwischen all diesen
- Formaten ist, dass einige Frame-basiert, andere wiederum
- Feld-basiert sind.
- <emphasis role="bold">Immer</emphasis> wenn ein Film für die
- Anzeige auf dem Fernseher vorbereitet wird (einschließlich
- DVD), wird er in ein Feld-basiertes Format konvertiert.
- Die verschiedenen Methoden, mit denen dies bewerkstelligt werden
- kann, werden zusammengenommen als "telecine" bezeichnet, von welchen
- das verrufene NTSC "3:2 pulldown" eine Abart darstellt.
- Sofern das Originalmaterial nicht Feld-basiert war (bei gleicher
- Feldrate), erhältst du einen Film in einem anderen Format als
- das Original.
- </para>
-
- <itemizedlist>
- <title>Es gibt einige verbreitete Typen des pulldown:</title>
- <listitem>
- <para>
- <emphasis role="bold">PAL 2:2 pulldown</emphasis>: Das schönste von
- allen.
- Jeder Frame wird durch das wechselweise Extrahieren und Anzeigen
- der geradzahligen und ungeradzahligen Zeilen für die Dauer von zwei
- Feldern dargestellt.
- Hat das Originalmaterial 24fps, beschleunigt dieser Prozess den Film
- um 4%.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">PAL 2:2:2:2:2:2:2:2:2:2:2:3 pulldown</emphasis>:
- Jeder 12-te Frame, anstatt nur jeder 2-te, wird für die Dauer von zwei
- Feldern dargestellt.
- Dies vermeidet die 4% Geschwindigkeitssteigerung, macht jedoch das
- Umkehren des Prozesses viel schwieriger.
- Es ist üblicherweise in Musical-Produktionen zu sehen, wo das Anpassen der
- Geschwindigkeit um 4% sicherlich das musikalische Ergebnis kaputt machen würde.
- </para>
- </listitem>
- <listitem><para>
- <emphasis role="bold">NTSC 3:2 telecine</emphasis>: Frames werden
- abwechselnd für die Dauer von 3 oder 2 Feldern angezeigt.
- Dies verleiht der Feldrate das 2.5-fache der originalen Framerate.
- Das Resultat wird dadurch auch leicht von 60 Feldern pro Sekunde auf
- 60000/1001 Felder pro Sekunde verlangsamt, um die NTSC-Felddrate
- beizubehalten.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">NTSC 2:2 pulldown</emphasis>: Verwendet zur
- Darstellung von 30fps Material auf NTSC.
- Schön, genau wie das 2:2 PAL pulldown.
- </para>
- </listitem>
- </itemizedlist>
-
- <para>
- Es gibt auch Methoden zur Konvertierung zwischen NTSC- und PAL-Video,
- jedoch liegen diese Themen jenseits des Rahmens dieser Anleitung.
- Wenn du auf solch einen Film stößt und ihn encodieren willst, solltest
- du besser eine Kopie im originalen Format suchen.
- Die Konvertierung zwischen diesen beiden Formaten ist hochdestruktiv und
- kann nicht spurlos rückgängig gemacht werden, somit wird deine Encodierung
- außerordentlich darunter leiden, wenn sie aus einer konvertierten Quelle
- erzeugt wurde.
- </para>
- <para>
- Wenn ein Video auf DVD gespeichert wird, werden fortlaufend Feldpaare
- als Frames gruppiert, auch wenn nicht beabsichtigt ist, diese gleichzeitig
- zu zeigen.
- Der bei DVD und digitalem TV verwendete MPEG-2-Standard bietet einen Weg
- für beides, die originalen progressiven Frames zu encodieren und die Anzahl
- der Felder, für die ein Frame gezeigt werden soll, im Header dieses Frames
- zu speichern.
- Wurde diese Methode angewandt, wird dieser Film oft als "soft telecined"
- beschrieben, da der Prozess eher nur den DVD-Player anweist, pulldown
- auf den Film anzuwenden, als den Film selbst abzuändern.
- Dieser Fall sollte möglichst bevorzugt werden, da er (eigentlich ignoriert)
- leicht vom Encoder rückgängig gemacht werden kann und da er die maximale
- Qualität beibehält.
- Wie auch immer, viele DVD- und Rundfunkproduktionsstudios verwenden
- keine passenden Encodierungstechniken, sie produzieren stattdessen Filme mit
- "hard telecine", bei denen Felder sogar in encodiertes MPEG-2 dupliziert
- werden.
- </para>
- <para>
- Die Vorgehensweisen für den Umgang mit solchen Fällen werden
- <link linkend="menc-feat-telecine">später in diesem Handbuch</link>
- behandelt.
- Wir lassen dich jetzt mit einigen Anleitungen zur Identifizierung der
- Materialtypen zurück, mit denen du es zu tun hast:
- </para>
-
- <itemizedlist>
- <title>NTSC-Bereiche:</title>
- <listitem>
- <para>
- Wenn <application>MPlayer</application> angibt, dass die Framerate
- während des Betrachtens des Films zu 24000/1001 gewechselt hat
- und diese nie wieder zurückwechselt, handelt es sich meist mit
- Sicherheit um progressiven Inhalt, der "soft telecined" wurde.
- </para>
- </listitem>
- <listitem>
- <para>
- Wenn <application>MPlayer</application> anzeigt, dass die Framerate
- zwischen 24000/1001 und 30000/1001 vor und zurück wechselt, und Du
- siehst hin und wieder Kammartefakte, dann gibt es mehrere Möglichkeiten.
- Die Segmente mit 24000/1001 fps sind meist mit Sicherheit progressiver
- Inhalt, "soft telecined", jedoch könnten die Teile mit 30000/1001 fps
- entweder "hard telecined" 24000/1001 fps Inhalt oder 60000/1001 Felder
- pro Sekunde NTSC-Video sein.
- Verwende die selben Richtwerte wie in den folgenden zwei Fällen, um zu
- bestimmen, um was es sich handelt.
- </para>
- </listitem>
- <listitem>
- <para>
- Wenn <application>MPlayer</application> nie einen Frameratenwechsel
- anzeigt und jeder einzelne Frame mit Bewegung gekämmt (combed) erscheint,
- ist dein Film ein NTSC-Video bei 60000/1001 Feldern pro Sekunde.
- </para>
- </listitem>
- <listitem>
- <para>
- Wenn <application>MPlayer</application> nie einen Frameratenwechsel
- anzeigt und zwei von fünf Frames gekämmt (combed) erscheinen, ist der
- Inhalt deines Films "hard telecined" 24000/1001 fps.
- </para>
- </listitem>
- </itemizedlist>
-
- <itemizedlist>
- <title>PAL-Bereiche:</title>
- <listitem>
- <para>
- Wenn du niemals irgend ein Combing siehst, ist dein Film 2:2 pulldown.
- </para>
- </listitem>
- <listitem>
- <para>
- Siehst du alle halbe Sekunde abwechselnd ein- und ausgehendes Combing,
- dann ist dein Film 2:2:2:2:2:2:2:2:2:2:2:3 pulldown.
- </para>
- </listitem>
- <listitem>
- <para>
- Hast du immer während Bewegungen Combing gesehen, dann ist dein Film
- PAL-Video bei 50 Feldern pro Sekunde.
- </para>
- </listitem>
- </itemizedlist>
-
- <note>
- <title>Tipp:</title>
- <para>
- <application>MPlayer</application> kann das Filmplayback
- mittels der Option -speed verlangsamen oder Frame für Frame abspielen.
- Versuche <option>-speed</option> 0.2 zu verwenden, um den Film sehr lamgsam
- anzusehen oder drücke wiederholt die Taste "<keycap>.</keycap>", um jeweils
- einen Frame abzuspielen und identifiziere dann das Muster, falls du bei voller
- Geschwindigkeit nichts erkennen kannst.
- </para>
- </note>
- </sect3>
- </sect2>
-
- <sect2 id="menc-feat-dvd-mpeg4-2pass">
- <title>Konstanter Quantisierungsparameter vs. Multipass</title>
-
- <para>
- Es ist möglich, deinen Film in einer großen Auswahl von Qualitäten zu
- encodieren.
- Mit modernen Videoencodern und ein wenig Pre-Codec-Kompression
- (Herunterskalierung und Rauschunterdrückung), kann eine sehr gute
- Qualität bei 700 MB für einen 90-110-minütigen Breitwandfilm erreicht werden.
- Des Weiteren können alle Filme - sogar die längsten - mit nahezu perfekter
- Qualität bei 1400 MB encodiert werden.
- </para>
-
- <para>
- Es gibt drei Annäherungen für das Encodieren eines Videos: konstante Bitrate
- (CBR), konstanter Quantisierungsparameter und Multipass (ABR, oder mittlere Bitrate).
- </para>
-
- <para>
- Die Komplexität der Frames eines Filmes und somit die Anzahl der für
- deren Komprimierung erforderlichen Bits kann von einer Szene zur anderen
- außerordentlich variieren.
- Moderne Videoencoder können sich durch Variieren der Bitrate an diese
- Anforderungen anpassen.
- In einfachen Modi wie CBR kennen die Encoder jedoch nicht den
- Bitratenbedarf zukünftiger Szenen und sind somit nicht in der Lage,
- die angeforderte mittlere Bitrate über längere Zeitspannen zu
- überschreiten.
- Erweiterte Modi wie etwa Multipass-Encodierung können die Statistik
- früherer Durchgänge berücksichtigen; dies behebt das oben erwähnte
- Problem.
- </para>
-
- <note><title>Anmerkung:</title>
- <para>
- Die meisten Codecs, die ABR-Encodierung unterstützen, unterstützen nur
- die Encodierung in zwei Durchgängen (two pass) während einige andere wie
- etwa <systemitem class="library">x264</systemitem>,
- <systemitem class="library">Xvid</systemitem>
- und <systemitem class="library">libavcodec</systemitem> Multipass
- unterstützen, was die Qualität bei jedem Durchgang leicht verbessert.
- Jedoch ist diese Verbesserung weder messbar noch ist sie nach dem
- 4-ten Durchgang oder so spürbar.
- Aus diesem Grund werden in diesem Abschnitt die Encoderierung mit 2 Durchläufen
- (two pass) und Multipass abwechselnd angewandt.
- </para>
- </note>
-
- <para>
- In jedem dieser Modi bricht der Videocodec (wie etwa
- <systemitem class="library">libavcodec</systemitem>)
- den Videoframe in 16x16 Pixel Macroblöcke und wendet danach einen
- Quantisierer auf jeden Macroblock an. Je niedriger der Quantisierer desto
- besser die Qualität und desto höher die Bitrate.
- Die Methode, die der Filmencoder zur Bestimmung des auf einen gegebenen
- Macroblock anzuwendenden Quantisierer verwendet, variiert und ist in
- hohem Maße einstellbar. (Dies ist eine extrem übertriebene Vereinfachung
- des aktuellen Prozesses aber nützlich, um das Grundkonzept zu verstehen.)
- </para>
-
- <para>
- Wenn du eine konstante Bitrate festlegst, wird der Videocodec das Video
- so encodieren, dass so viele Details wie notwendig und so wenig
- wie möglich ausgesondert werden, um unterhalb der vorgegebenen Bitrate zu
- bleiben. Wenn du dich wirklich nicht um die Dateigröße kümmerst, könntest
- du auch CBR verwenden und eine nahezu endlose Bitrate festlegen.
- (In der Praxis bedeutet dies einen Wert, der hoch genug ist, kein Limit
- aufzuwerfen wie 10000Kbit.) Ohne echte Einschränkung der Bitrate wird
- der Codec als Ergebnis den niedrigsten möglichen Quantisierer für jeden
- Macroblock anwenden (wie durch <option>vqmin</option> für
- <systemitem class="library">libavcodec</systemitem>
- spezifiziert, Standardwert ist 2).
- Sobald du eine Bitrate festlegst, die niedrig genug ist, den
- Codec zur Anwendung eines höheren Quantisierers zu zwingen, bist Du
- nahezu sicher dabei, die Qualität deines Videos zu ruinieren.
- Um dies zu vermeiden, solltst du möglicherweise dein Video wie
- in der später in diesem Handbuch beschriebenen Methode reduzieren.
- Im Allgemeinen solltst du CBR vollkommen meiden, wenn dir Qualität
- wichtig ist.
- </para>
-
- <para>
- Mit konstantem Quantisierer wendet der Codec denselben Quantisierer, wie
- durch die Option <option>vqscale</option> (für
- <systemitem class="library">libavcodec</systemitem>) spezifiziert, auf jeden
- Macroblock an.
- Willst du einen Rip mit höchstmöglicher Qualität und ignorierst dabei
- wiederum die Bitrate, kannst du <option>vqscale=2</option> verwenden.
- Dies wird dieselbe Bitrate und PSNR (peak signal-to-noise ratio) liefern
- wie CBR mit <option>vbitrate</option>=infinity und der Standardeinstellung
- <option>vqmin</option>=2.
- </para>
-
- <para>
- Das Problem mit konstantem Quantisierer ist, dass der vorgegebene Quantisierer
- zum Einsatz kommt, egal ob der Macroblock ihn benötigt oder nicht. Dies heißt,
- es wäre möglich, einen höheren Quantisierer auf einen Macroblock anzuwenden,
- ohne sichtbare Qualität zu opfern. Warum die Bits für einen unnötig kleinen
- Quantisierer verschwenden? Deine CPU hat soundso viele Arbeitsgänge Zeit zur
- Verfügung, die Festplatte jedoch nur soundso viele Bits.
- </para>
-
- <para>
- Bei einer Encodierung mit zwei Durchläufen (two pass), wird der erste Durchgang
- den Film so rippen, als würde CBR vorliegen, jedoch wird ein Log die Eigenschaften
- jedes Frames beibehalten. Diese Daten werden danach während des zweiten Durchgangs
- dazu verwendet, intelligente Entscheidungen zur Wahl des Quantisierers zu treffen.
- Während schneller Action oder hochdetaillierter Szenen werden womöglich
- höhere Quantisierer, während langsamen Bewegungen und Szenen mit weniger Details
- niedrigere Quantisierer verwendet.
- Normalerweise ist die Anzahl der Bewegungen wichtiger als die der Details.
- </para>
-
- <para>
- Wenn du <option>vqscale=2</option> verwendest, verschwendest du Bits. Wenn
- du <option>vqscale=3</option> anwendest, wirst du keinen Rip mit bestmöglicher
- Qualität erhalten. Angenommen du rippst eine DVD mit <option>vqscale=3</option>
- und das Resultat ist 1800Kbit. Wenn du in zwei Durchgängen mit
- <option>vbitrate=1800</option> encodierst, wird das daraus resultierende Video
- eine <emphasis role="bold">bessere Qualität</emphasis> bei
- <emphasis role="bold">gleicher Bitrate</emphasis> haben.
- </para>
-
- <para>
- Da du nun davon überzeugt bist, dass zwei Durchgänge (two pass) den besten
- Weg darstellen, stellt sich jetzt tatsächlich die Frage, welche Bitrate
- verwendet werden soll? Die Antwort ist, dass es nicht nur eine
- Antwort gibt. Idealerweise willst du eine Bitrate wählen, die die beste Balance
- zwischen Qualität und Dateigröße ergibt. Die kann abhängig vom Quellvideo
- variieren.
- </para>
-
- <para>
- Interessiert die Größe nicht, stellen etwa 2000Kbit plus oder minus 200Kbit
- einen guten Ausgangspunkt für einen sehr hochqualitativen Rip dar.
- Bei einem Video mit schneller Action oder hohen Details, oder wenn du schlicht
- und ergreifend ein sehr kritisches Auge besitzst, könntest du dich für 2400
- oder 2600 entscheiden.
- Bei einigen DVDs kannst du eventuell keinen Unterschied bei 1400Kbit feststellen.
- Um ein besseres Gefühl zu bekommen, ist es eine gute Idee, mit Szenen bei
- unterschiedlichen Bitraten herumzuexperimentieren.
- </para>
-
- <para>
- Wenn du eine bestimmte Größe anvisierst, musst du die Bitrate irgendwie
- kalkulieren.
- Aber zuvor solltest du wissen, wieviel Platz du für den/die Audiotrack(s)
- reservieren musst, daher solltest Du
- <link linkend="menc-feat-dvd-mpeg4-audio">diese(n) zuerst rippen</link>.
- Du kannst die Bitrate mit folgender Gleichung berechnen:
- <systemitem>Bitrate = (zielgroesse_in_MByte - soundgroesse_in_MByte) * 1024 * 1024 / laenge_in_sek * 8 / 1000</systemitem>
- Um zum Beispiel einen zweistündigen Film auf eine 702MB CD mit einem 60MB
- Audiotrack zu bekommen, sollte die Videobitrate folgendermaßen sein:
- <systemitem>(702 - 60) * 1024 * 1024 / (120*60) * 8 / 1000 = 740kbps</systemitem>
- </para>
-
- </sect2>
-
-
- <sect2 id="menc-feat-dvd-mpeg4-constraints">
- <title>Randbedingungen für effizientes Encodieren</title>
-
- <para>
- Aufgrund der Natur der MPEG-Komprimierung gibt es zahlreiche
- Randbedingungen, denen du zum Erreichen maximaler Qualität folgen
- solltest.
- MPEG splittet das Video in Macroblöcke genannte 16x16 Quadrate auf,
- jeder davon zusammengesetzt aus 4 8x8 Blöcken mit
- Luma-(Intensitäts)-Informationen und zwei halb-auflösenden 8x8
- Chroma-(Farb)-Blöcken (einer für die Rot-Cyan-Achse und der andere für
- die Blau-Gelb-Achse).
- Selbst wenn Breite und Höhe deines Films kein Vielfaches von 16 sind,
- wird der Encoder ausreichend 16x16 Macroblöcke zur Abdeckung des
- gesamten Bildbereichs verwenden und der Extraplatz wird verschwendet.
- Folglich ist es keine gute Idee, im Interesse der Maximierung der
- Qualität bei fester Dateigröße, Abmessungen zu verwenden, die kein
- Vielfaches von 16 sind.
- </para>
-
- <para>
- Die meisten DVDs besitzen ein bestimmtes Maß schwarzer Balken
- an ihren Rändern. Diese dort zu belassen wird für die Qualität in mehrfacher
- Hinsicht <emphasis role="bold">sehr</emphasis> schädlich sein.
- </para>
-
- <orderedlist>
- <listitem>
- <para>
- MPEG-Kompression hängt in höchstem Maße von den
- Frequenzbereichs-Transformationen ab, insbesondere von der
- Discrete Cosine Transform (DCT), die der Fourier Transform ähnelt.
- Diese Art Encodierung ist für darstellende Muster und weiche
- Übergänge effizient, hat jedoch große Probleme mit scharfen Kanten.
- Um diese zu encodieren muss sie viel mehr Bits verwenden,
- oder es wird andernfalls ein als Ringing bekannter Artefakt
- auftreten.
- </para>
-
- <para>
- Die Discrete Frequency Transform (DCT) erfolgt separat auf jeden
- Macroblock (eigentlich auf jeden Block), somit trifft dieses Problem
- nur zu, wenn sich in einem Block eine scharfe Kante befindet.
- Beginnt dein schwarzer Rand exakt an den Grenzen zum Vielfachen von
- 16 Pixeln, stellt dies kein Problem dar.
- Seis drum, die schwarzen Ränder bei DVDs werden in den seltensten
- Fällen schön angeordnet, daher wirst du sie in der Praxis immer
- abschneiden müssen, um diesen Nachteil zu vermeiden.
- </para>
- </listitem>
- </orderedlist>
-
- <para>
- Zusätzlich zu den Frequenzbereichs-Transformationen verwendet die
- MPEG-Kompression Bewegungsvektoren, um den Wechsel von einem Frame
- zum anderen darzustellen.
- Bewegungsvektoren arbeiten bei Inhalt, der von den Kanten eines Bildes
- her einfließt, normalerweise weniger effizient, da dieser im vorherigen
- Frame nicht vorhanden ist. Solange sich das Bild bis voll zur Kante des
- encodierten Bereichs hin vergrößert, haben Bewegungsvektoren kein Problem
- mit Inhalt, der sich aus den Kanten des Bildes hinausbewegt. Die Präsenz
- schwarzer Ränder kann jedoch Ärger machen:
- </para>
-
- <orderedlist continuation="continues">
- <listitem>
- <para>
- Die MPEG-Kompression speichert für jeden Macroblock einen Vektor,
- um ausfindig zu machen, welcher Teil des vorherigen Frames in diesen
- Macroblock als Basis zur Vorhersage des nächsten Frames kopiert
- werden soll. Nur die verbleibenden Unterschiede müssen encodiert werden.
- Überspannt der Macroblock die Kante des Bildes und enthält einen
- Teil des schwarzen Randes, werden Bewegungsvektoren aus anderen
- Teilen des Bildes den schwarzen Rand überschreiben. Dies bedeutet, dass
- jede Menge Bits entweder zur wiederholten Schwärzung des überschriebenen
- Randes aufgewendet werden müssen, oder es wird (eher) erst gar kein
- Bewegungsvektor genutzt und alle Änderungen innerhalb dieses Macroblocks
- müssen explizit encodiert werden. So oder so wird die Encodiereffizienz
- außerordentlich reduziert.
- </para>
-
- <para>
- Nochmal, dieses Problem trifft nur dann zu, wenn schwarze Ränder
- nicht an den Grenzen eines Vielfachen von 16 anstehen.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Zuletzt noch was, angenommen wir haben einen Macroblock im Inneren des
- Bildes und ein Objekt bewegt sich aus Richtung Nähe der Kante des Bildes
- her in diesen Block hinein. Die MPEG-Encodierung kann nicht sagen
- "kopiere den Teil, der innerhalb des Bildes liegt, den schwarzen Rand
- aber nicht". Somit wird der schwarze Rand ebenfalls mit hinein kopiert
- und jede Menge Bits müssen zur Encodierung des Teils des Bildes, der
- dort angenommen wird, aufgewendet werden.
- </para>
-
- <para>
- Läuft das Bild ständig zur Kante des encodierten Bereichs hin, besitzt
- MPEG spezielle Optimierungen, um immer wieder dann die Pixel am Rand des
- Bildes zu kopieren, wenn ein Bewegungsvektor von außerhalb des
- encodierten Bereichs ankommt. Dieses Feature wird nutzlos, wenn der Film
- schwarze Ränder hat. Im Gegensatz zu den Problemen 1 und 2 hilft hier
- kein Anordnen der Ränder am Vielfachen von 16.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Obwohl die Ränder komplett schwarz sind und sich nie ändern, ist
- zumindest ein minimaler Overhead damit verbunden, mehr Macroblöcke
- zu besitzen.
- </para>
- </listitem>
- </orderedlist>
-
- <para>
- Aus all diesen Gründen wird empfohlen, schwarze Ränder komplett abzuschneiden.
- Mehr noch, liegt ein Bereich mit Rauschen/Verzerrung an der Kante des Bildes,
- steigert dessen Abschneiden ebenso die Encodiereffizienz. Videophile Puristen,
- die den Originalzustand so nah wie möglich sichern wollen,
- mögen dieses Abschneiden (cropping) beanstanden, wenn du jedoch nicht planst,
- bei konstantem Quantisierer zu encodieren, wird der Qualitätsgewinn, den Du
- durch dieses Abschneiden erreichst, beträchtlich über dem Verlust an Informationen
- an den Kanten liegen.
- </para>
- </sect2>
-
-
- <sect2 id="menc-feat-dvd-mpeg4-crop">
- <title>Abschneiden und Skalieren</title>
-
- <para>
- Wiederaufruf der vorherigen Sektion, dass die letzte von Dir
- encodierte Bildgröße ein Vielfaches von 16 sein sollte (bei beidem,
- Breite und Höhe).
- Diese kann durch Abschneiden, Skalieren erreicht werden oder durch
- eine Kombination von beidem.
- </para>
-
- <para>
- Beim Abschneiden gibt es ein paar Richtwerte, die befolgt werden müssen,
- um eine Zerstörung des Films zu vermeiden.
- Das normale YUV-Format, 4:2:0, speichert Chroma-(Farb)-Informationen
- in einer Unterstichprobe (subsampled), z.B. wird Chroma nur halb so oft
- in jede Richtung gesampelt wie Luma-(Intensitäts)-Informationen.
- Beobachte dieses Diagramm, in dem L Luma-Samplingpunkte bedeuten und C
- für Chroma steht.
- </para>
-
- <informaltable>
- <?dbhtml table-width="40%" ?>
- <?dbfo table-width="40%" ?>
- <tgroup cols="8" align="center">
- <colspec colnum="1" colname="col1"/>
- <colspec colnum="2" colname="col2"/>
- <colspec colnum="3" colname="col3"/>
- <colspec colnum="4" colname="col4"/>
- <colspec colnum="5" colname="col5"/>
- <colspec colnum="6" colname="col6"/>
- <colspec colnum="7" colname="col7"/>
- <colspec colnum="8" colname="col8"/>
- <spanspec spanname="spa1-2" namest="col1" nameend="col2"/>
- <spanspec spanname="spa3-4" namest="col3" nameend="col4"/>
- <spanspec spanname="spa5-6" namest="col5" nameend="col6"/>
- <spanspec spanname="spa7-8" namest="col7" nameend="col8"/>
- <tbody>
- <row>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- </row>
- <row>
- <entry spanname="spa1-2">C</entry>
- <entry spanname="spa3-4">C</entry>
- <entry spanname="spa5-6">C</entry>
- <entry spanname="spa7-8">C</entry>
- </row>
- <row>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- </row>
- <row>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- </row>
- <row>
- <entry spanname="spa1-2">C</entry>
- <entry spanname="spa3-4">C</entry>
- <entry spanname="spa5-6">C</entry>
- <entry spanname="spa7-8">C</entry>
- </row>
- <row>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>
- Wie du sehen kannst, kommen Zeilen und Spalten des Bildes natürlich paarweise.
- Folglich <emphasis>müssen</emphasis> deine Abschneide-Offsets und
- Abmessungen geradzahlig sein.
- Sind sie dies nicht, wird Chroma nicht mehr korrekt mit Luma abgeglichen.
- In der Theorie ist es möglich, mit ungeraden Offsets abzuschneiden, jedoch
- erfordert dies ein Resampling von Chroma, was potentiell eine mit Verlust
- verbundene Operation bedeutet und vom Crop-Filter nicht unterstützt
- wird.
- </para>
-
- <para>
- Weiterhin wird interlaced Video folgendermaßen gesampelt:
- </para>
-
- <informaltable>
- <?dbhtml table-width="80%" ?>
- <?dbfo table-width="80%" ?>
- <tgroup cols="16" align="center">
- <colspec colnum="1" colname="col1"/>
- <colspec colnum="2" colname="col2"/>
- <colspec colnum="3" colname="col3"/>
- <colspec colnum="4" colname="col4"/>
- <colspec colnum="5" colname="col5"/>
- <colspec colnum="6" colname="col6"/>
- <colspec colnum="7" colname="col7"/>
- <colspec colnum="8" colname="col8"/>
- <colspec colnum="9" colname="col9"/>
- <colspec colnum="10" colname="col10"/>
- <colspec colnum="11" colname="col11"/>
- <colspec colnum="12" colname="col12"/>
- <colspec colnum="13" colname="col13"/>
- <colspec colnum="14" colname="col14"/>
- <colspec colnum="15" colname="col15"/>
- <colspec colnum="16" colname="col16"/>
- <spanspec spanname="spa1-2" namest="col1" nameend="col2"/>