diff options
author | kraymer <kraymer@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-09-27 08:59:17 +0000 |
---|---|---|
committer | kraymer <kraymer@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-09-27 08:59:17 +0000 |
commit | 172e0cccb4546ddd2da843babe9e6f8d4c72707e (patch) | |
tree | 9fae5f24f09fa91599a6a32f13a3c13c0316598b /DOCS/xml/de/encoding-guide.xml | |
parent | 4c4d035904b0171a6d17a5e97ab0ef11900b4ef8 (diff) | |
download | mpv-172e0cccb4546ddd2da843babe9e6f8d4c72707e.tar.bz2 mpv-172e0cccb4546ddd2da843babe9e6f8d4c72707e.tar.xz |
cosmetics: reformatting, aligning
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19988 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'DOCS/xml/de/encoding-guide.xml')
-rw-r--r-- | DOCS/xml/de/encoding-guide.xml | 9967 |
1 files changed, 5050 insertions, 4917 deletions
diff --git a/DOCS/xml/de/encoding-guide.xml b/DOCS/xml/de/encoding-guide.xml index 41a4f16283..309d1cc775 100644 --- a/DOCS/xml/de/encoding-guide.xml +++ b/DOCS/xml/de/encoding-guide.xml @@ -1,4960 +1,5093 @@ <?xml version="1.0" encoding="iso-8859-1"?> <!-- In sync with r19043 --> + <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 zahlreichen Methoden, mit denen dies bewerkstelligt werden - kann, werden insgesamt dem "pulldown" zugeordnet, von welchem - das verrufene NTSC "3:2 telecine" 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 kann die Qualität auf - verschiedene Art und Weise negativ beeinflussen. -</para> - -<orderedlist> -<listitem> -<para> - MPEG-Kompression hängt ebenso 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"/> -<spanspec spanname="spa3-4" namest="col3" nameend="col4"/> -<spanspec spanname="spa5-6" namest="col5" nameend="col6"/> -<spanspec spanname="spa7-8" namest="col7" nameend="col8"/> -<spanspec spanname="spa9-10" namest="col9" nameend="col10"/> -<spanspec spanname="spa11-12" namest="col11" nameend="col12"/> -<spanspec spanname="spa13-14" namest="col13" nameend="col14"/> -<spanspec spanname="spa15-16" namest="col15" nameend="col16"/> - <tbody> - <row> - <entry namest="col1" nameend="col8">Oberes Feld</entry> - <entry namest="col9" nameend="col16">Unteres Feld</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> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></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> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - </row> - <row> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <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> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - </row> - <row> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry spanname="spa9-10">C</entry> - <entry spanname="spa11-12">C</entry> - <entry spanname="spa13-14">C</entry> - <entry spanname="spa15-16">C</entry> - </row> - <row> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <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> |