Enkodierung in Nandub

SBC ist in zwei Phasen unterteilt, in der ersten Phase wird der Film mit der maximal in DivX möglichen Bitrate kodiert (6000 kbit/s) und das Ergebnis auf verschiedene Parameter hin analysiert. Dazu gehört die "Quality" (Qualität), die in den Bits 1-5 eines jeden Frames gespeichert wird. Daher kann die Qualität einen Wert von 0 bis 32 annehmen. Dieser Wert entspricht dann dem vom Codec zum Komprimieren des Frames benutzten Kompressionslevel, wie 2x oder 3x, und hängt direkt mit der Größe des Frames zusammen (je größer die Nummer, desto kleiner der Frame). Normalerweise werden Werte zwischen 2x und 32x benutzt, da der Decoder keine mit 1x kodierten Frames dekodieren kann. Der "Fast Motion"-Codec benutzt nur Werte von 5x oder höher und limitiert so die mit "Fast Motion" erreichbare Qualität; "Low Motion" dagegen benutzt Werte bis zu 2x. Aber natürlich werden diese Werte nicht für alle Frames benutzt, da dies zu einem exzessiven "Verbrauch" an Bitrate führen würde (Folge: zu große Ausgabedatei). Ansonsten werden noch die Größe der Frames und die Gewichtung der "Chroma"/"Luma" Komponenten abgespeichert.

Bemerkung: Die neuen NanDub-Versionen haben eine ganze Reihe von neuen interessanten Funktionen. Besucht das Nandub Forum, in denen man viele interessante Diskussionen rund um diese Funktionen nachlesen kann. Außerdem sollte man die Readme-Datei aufmerksam lesen. Vielen Dank an all die netten aktiven Poster in diesen Foren, deren unermüdliches Testen es möglich gemacht hat, immer bessere Resultate mit NanDub zu erzielen. Dake auch an _nn_, Myth und Phreak und an all die anderen Menschen, die sich Zeit nehmen, um auf Fragen in den Foren zu antworten. Vielen Dank an Koepi, der sich die Zeit nahm, all die Informationen aus dem SBC-Forum unter "Erklärungen zu NanDub Optionen" (hier auf Deutsch) zusammenzutragen. Immer, wenn die Informationen auf dieser Seite unzureichend sind, schaut bitte unter dieser Seite nach.

Erster Durchgang (First Pass)

NanDub muss korrekt installiert sein, um hier weiterzumachen; das bedeutet, daß die Schritte 5a und 5b des Guides vorher ausgeführt wurden. Natürlich ist es möglich, den ersten und den zweiten Durchgang zu unterschiedlicher Zeit durchzuführen. Die einzige Voraussetzung hierzu ist, dass die VOB-Dateien, die Projektdateien (DVD2AVI, TMPG) und die AVI-Dateien (durch VFAPI) unangetastet bleiben. Außerdem sollte man sich die Werte merken, die man zum Vergrößern / Verkleinern in Schritt 5a benutzt hat. Das Abspeichern des gerade genutzten Profiles in NanDub nach dem ersten Durchngang macht es wesentlich einfacher, den zweiten Durchgang zu einem späteren Zeitpunkt durchzuführen. Ein Profil kann man durch Drücken von "STRG-S" abspeichern.

Es ist nutzlos, sich während des ersten Durchngangs schon um den Ton zu kümmern, daher sollte man "Audio - No Audio" auswählen. Dann drücke "F8" Man wird nach einem Namen für die Statistik-Datei gefragt. Diesen Namen sollte man sich für den zweiten Durchngang merken. Als Alternative kann man durch Drücken von "Shift-F8" auch beide Durchngänge direkt nacheinander durchführen lassen, dazu ist es aber erforderlich, daß alle unten erklärten Einstellungen schon korrekt vorgenommen wurden.

Wie schon gesagt, der erste Durchgang wird den Film mit DivX Low Motion bei einer Bitrate von 6000 kbit/s kodieren, aber es wird keine AVI-Datei dabei abgespeichert, daher braucht man auch noch nicht so viel Festplattenplatz (nur für die stats-Datei, so zwischen 5 und 20 MB).

Zweiter Durchgang (Second Pass)

Da es möglich ist, den zweiten Durchgang nicht direkt nach dem ersten durchzuführen, ist es unerlässlich, die Schritte 5a und 5b vor dem 2. Durchgang auszuführen. Und natürlich braucht der zweite Durchgang exakt dieselben Filtereinstellungen wie der erste oder das Ergebnis wird nicht optimal sein. Und falls zusätzlich irgendwelche Filter genutzt wurden, müssen auch diese vor dem zweiten Durchgang wieder geladen werden. Falls hierzu ein NanDub-Profil existiert, so kann man einfach auch dieses laden (File - Load Processing Settings).

Ich habe herausgefunden, dass viele Menschen irgendwelche vorgefertigten Profile benutzen, ohne sie wirklich zu verstehen, und sich dann später beschweren, wenn die Resultate nicht ihren Erwartungen entsprechen. SBC ist keine "Flask-it"-Methode, daher sollte man sich die Zeit nehmen und diese Anleitung gründlich lesen, um die verschiedenen Einstellungen zu verstehen. Außerdem sollte man sich im Forum die sehr detaillierten Diskussionen zu diesen Themen angucken. Unten werde ich die wichtigen SBC-Möglichkeiten erklären und ein paar halbwegs vernünftige Vorschläge für die meisten Werte geben. Dabei sollte man bedenken, dass diese Werte auch nicht optimal sein könnten.

Ein weiterer Hinweis: Es gibt nur ein paar Parameter, die einen wirklich großen Einfluss auf die Ausgabequalität haben: Die Bitrate (natürlich), BR Modulation (BR=Bitrate, sollte immer eingestellt sein, falls man 1-CD-Rips erstellt), "curve compression", "gauge min" und "gauge max" und die "DRFs" (man sollte diese besser in Ruhe lassen, außer man will 2-CD-Rips erstellen und weiß wirklich, was man da tut). Ich habe mir für diese Einstellungen Werte überlegt, die in Verbindung mit der gewünschten Ausgabegröße gelten. Diese Werte sollten einen guten Ausgangspunkt für die meisten Filme darstellen. Offensichtlich braucht jeder Film irgendwelche Optimierungen für die besten Resultate, aber das unveränderte Benutzen dieser Werte sollte keine völlig unansehnlichen Ergebnisse erzeugen. All die anderen Parameter sind nicht wirklich entscheidend für die Endqualität.

Klicke auf "Video" um das Video-Untermenü anzuzeigen.

Dies wird unsere Spielwiese für die nächsten Minuten sein.

Dieses kleine Untermenü gibt einem Zugang zu allen wichtigen Einstellungen von SBC ;)

Aktiviere NIEMALS "Generate Stats" oder "No AVI output". Benutze immer "F8", um den ersten Durchgang zu starten. Das Aktivieren einer oder beider dieser Optionen hat zu einer Menge Probleme bei vielen Usern geführt.

Der erste Schritt besteht aus der Berechnung der Bitrate, also starte den "BitRate Calculator"

Als erstes gibt man die CD Größe und die Anzahl der CDs an. Wenn man nur CBR Audio-Dateien benutzt, so kann man nun die geplante Bitrate der Tonspur eingeben. Falls der Ton mit VBR kodiert werden soll, so muss die mp3-Datei vor dem Film erstellt, in NanDub geladen ("Audio" - "(VBR) MP3 Audio") und dann "Get data from audio source" aktiviert werden. Zum Schluss klicke auf den "calculate"-Knopf und schreibe den errechneten Wert auf.

Der nächste Schritt besteht aus dem Einstellen der verschiedenen SBC-Werte, also aktiviert man "SBC Setting". Dann stellt man den DivX Codec (in der DivX-Registerkarte) ein:

Als erstes kann man den zu benutzenden Codec angeben. Aber wie es schon in der Readme-Datei gesagt wird, der einzige Vorteil von MPEG4v2 ist, dass der Codec legal ist, daher braucht man sich damit eigentlich nicht zu beschäftigen.

Die Bitrate sollte eigentlich schon vom Bitrate-Calculator bestimmt worden sein. Anders als beim "normalen" Enkodieren mit DivX hat das Keyframe-Intervall nur eine Funktion: Wenn nach der dort eingestellten Anzahl von Sekunden (10 in dem Beispiel hier) noch kein Keyframe vom Szenenwechselalgorithmus eingefügt wurde, dann wird das Einfügen eines solchen erzwungen. Aber immer wenn ein Keyframe durch die SCD (= "scene change detection", Szenenwechsel-Erkennung) eingefügt wurde, wird dieser Zähler zurückgesetzt.

"Minimum allowed bitrate" ist die kleinste Bitrate, die der Codec im Film benutzen darf. Werte unter 300 können zu sehr schlechten Ergebnissen führen, man sollte also mit dieser Einstellung vorsichtig umgehen. Dieser Wert wird erst angewandt, nachdem die Bitratenkurve berechnet, skaliert, geglättet usw. wurde. In der Debugger-Ausgabe wird man diesen Wert nicht zu Gesicht bekommen, sondern der Wert vor den ganzen Berechnungen wird angezeigt.

"Internal SCD" hilft dem Programm, Keyframes an den Stellen einzufügen, wo ein Frame mehr als "Internal SCD" mal Keyblocks enthält, und der SCD bisher keinen Keyframe an dieser Stelle erzeugt hat. "Space KFs" gibt einen Mindestabstand für zwei aufeinander fokgende Keyframes an. Höhere Werte bedeuten also weniger Keyframes. Ein Wert von 100 schaltet diese Funktion aus. An dieser Stelle ist anzumerken, daß "Internal SCD" auf sogenannten "motion levels" basiert. Wenn die Bewegungen diesen Schwellenwert überschreiten (motion 300 = 100%), wird ein Frame als ein Keyframe enkodiert. Dies kann in schnell bewegten Szenen zu sehr vielen Keyframes in geringem Abstand führen. Daher ziehen es viele vor, diese Funktion abzustellen, indem sie den Wert auf 100% setzen und stattdessen nur den alternativen SCD benutzen (siehe weiter unten).

Zum Schluss zu "Encoding errors prevention & Quality Control": Nandub bietet einem hier drei verschiedene Modi. Wenn man keinen aktiviert, findet auch keine Fehlerkorrektur statt, und so enkodiere ich meine Filme, falls mein erster Versuch nicht total bescheiden ausfällt (Eingeforene oder sehr schlecht aussehende Frames). Wenn man hier "Antifreeze" aktiviert, wird NanDub eingefrorene Frames (dies sind Frames, bei deren Wiedergabe das Bild einfriert und nur der Ton weiterläuft) im Film verhindern. "Full" ist der vollständige Qualitätskontrollmodus, der einen großen Einfluß auf die Kodierungsgeschwindigkeit hat. Bei Aktivierung wird jeder fertig komprimierte Frame wieder dekomprimiert und mit dem Quellframe verglichen. Der daraus resultierende Wert wird zwischen 0 und 95 db liegen. Wenn der Wert unter den in "Shit" angegebenen Wert fällt, so wird dieser Frame als ein Keyframe neu komprimiert, und wieder mit dem Quellframe verglichen. Ein relativ vernünftiger Wert für "Shit" ist 16 und für "Min quality" 28-30. Wenn der Wert unter "Min quality" fällt, versucht NanDub den Frame als einen Delta-Frame mit einem niedrigeren Komprimierungslevel neu zu komprimieren. Man kann den ganzen Prozess sehr beschleunigen, indem man "Min quality" auf 0 lässt und nur den "Shit"-Wert benutzt. "Min quality" auf 0 zu lassen bewahrt einen auch vor übergroßen Dateien.

Der letzte Wert ist "Motion modulation" Dieser Parameter bestimmt, wie stark die "anti-shit"-Funktion bei gewissen "motion levels" angewandt wird. Hier ein Beispiel: Es wurden 16 für "Shit" und 30 als "Min quality" eingegeben. Auf "motion level" 0 wird wirklich mit 16 shit und 30 Min quality gearbeitet. Auf motion level 150 würde Shit = 12 und Min quality = 22.5 genommen, und auf Motion 300 dann Shit = 8 und Min quality = 15. Wie man sieht, sind die Werte bei motion level 300 die von dir eingegebenen Werte, multipliziert mit der "motion modulation" (16*0.5=8 ;). Außerdem werden die Parameter linear skaliert, sodass man bei 1/2 Max motion 3/4 der Shit und Min Quality-Werte bekommt. Ein weiteres Beispiel: Es werden 25% modulation eingegeben. Bei motion level 0 werden immer noch shit = 16 und Min quality = 30 genommen. Bei motion level 150 werden Shit = 14 und Min quality = 26.25, und bei motion level = 300 werden Shit = 12 und Min quality = 22 genommen.

Und nun für alle, die das so nicht verstanden haben, gibt es auch noch eine kleine Formel (die ich nicht aus dem Quellcode habe, aber die Werte scheinen zu stimmen):

Shit = Shit - modulation*Shit*motion/300. Min quality funktioniert genauso.

Nun zu "Motion" (= Bewegung):

Während des ersten Durchngangs misst NanDub, wieviel Bewegung jeder Frame enthält. Die Bewegung wird umgerechnet auf eine Skala von 0 - 300, wobei 0 gar keine Bewegung bedeutet, und 300 das Maximum darstellt. "Span" bezeichnet den Ausschnitt, der zum Finden des Motion-Wertes analysiert wird. Bsp: 16 bedeutet: von 8 Frames vor dem aktuellen Frame bis 8 Frames nach dem aktuellen Frame. Wenn dieser Wert zu hoch eingestellt wird (mehr als doppelt soviel wie der vorgeschlagene Wert), könnte NanDub einen Spitzenwert in der Bewegung "übersehen", und außerdem würde das Enkodieren um einiges länger dauern.

"Sensitivity" stellt - wie der Name schon sagt - die Empfindlichkeit der Bewegungserkennung ein. Vorgeschlagene Werte wären zwischen 10 und 15. Je niedriger der Wert, desto höher ist die Empfindlichkeit.

Für diejenigen, die etwas mehr über das Kozept eines Bewegungsereignisses ("motion event") wissen möchten: In einem Deltaframe gibt es Keyblocks und Deltablocks. Ein Bewegungsereignis ist das erneute Berechnen eines ganz bestimmten Anteils eines Frames in Keyblocks (dem Kozept von Anti-Shit sehr ähnlich, wie es einen Delta-Frame neu berechnet und in einen Keyframe umwandelt). "Sensitivity" sagt etwas genauer aus, wie viele Blöcke neu berechnet werden müssen, damit ein Bewegungsereignis ausgelöst wird. Falls dies etwas unverständlich war, sollte man sich darüber nicht den Kopf zerbrechen, da es zum Benutzen des Programs eigentlich auch egal ist, es handelt sich nur um Background-Informationen für interessierte Leser.

Die "Fast Motion" und "Low Motion" Einstellungen zeigen an, wann zwischen dem Low- und Fast (High)-Motion Codec umgeschaltet wird. Da der Unterschied zwischen DivX Low Motion und DivX High Motion nur in den unterschiedlichen Kompressionseinstellungen besteht, sollte man gleich nur den Low Motion Codec benutzen, indem man den "Fast Motion"-Schieberegler auf 300 einstellt.

"Crispness Modulation": Crispness hat den Einfluß eines Weichzeichners im DivX-Codec und bei den genutzten Kompressionsstufen. Wenn der Bewegungswert ("Motion") bei 0 liegt, wird ein "crispness"-Wert von 100, bei einer Bewegung von 300 wird der eigegebene "crispness"-Wert benutzt. In unserem Beispiel wird die "crispness"-Einstellung 100-30 (der Wert, den man für "crispness modulation" eingegeben hat) = 70 sein. Der zweite Effekt der "crispness"-Einstellung beeinflusst die Kompressionsstufen, wenn "Bitrate Modulation" aktiviert wird. Verrauschte Filme könnten höhere Werten benötigen (z.B. "Papillon" = 50%).

Das Aktivieren der "bitrate modulation" hat einen Einfluss auf das Bitrate Reservoir in Abhängigkeit von den im ersten Durchgang festgestellten Bewegungswerten und setzt die DRFs nicht direkt. "BR manipulation" sollte für 1 CD Rips auf jeden Fall aktiviert werden. Bei 2 CD Rips kann man sie auch ausschalten. Wenn man aber die "motion based curve manipulation" in der "Bitrate Curve"-Registerkarte aktiviert (wie es hier vorgeschlagen wird), dann darf "BR modulation" NICHT aktiviert werden.

Nun gehe zur "Bitrate Curve"-Registerkarte.

"Collect in" enthält den Pfad und den Dateinamen der Statistikdatei, die beim Kodieren angelegt werden kann. "Encode using" enthält den Pfad und Dateinamen der Statistikdatei (.stats-Datei) des ersten Durchgangs. Man kann "Collect in" dazu benutzen, eine Statistikdatei sowohl für den zweiten Durchgang, als auch für Nachforschungszwecke zu erstellen. Statistikdateien enthalten Informationen, die es dem Programm erlauben, einen Bitratengraph zu zeichnen. Diese Kurve wird dann skaliert, um der selektierten Bitrate zu entsprechen. Wenn "scene changes" aktiviert wird, werden auch die Szenenwechsel in die Statistikdatei geschrieben (im ersten Durchgang). Dies kann nützlich sein, um eine ausgeglichenere Verteilung der Keyframes zu erreichen. Hier ein Beispiel:

Eigentlich erhielte man die Keyframes an den Stellen (Framenummer): 0, 10, 20, 21, wobei 0 und 21 echte Szenenwechsel und 10 und 20 durch den Codec eingesetzte Keyframes sind. Wenn man nun die Keyframe-Informationen in der Statistikdatei sammelt, wird NanDub die Verteilung im zweiten Durchgang balancieren, mit vielleicht folgendem Ergebnis: 0, 7, 14, 21. Das Aktivieren dieser Funktion wird den ersten Durchgang etwas verlangsamen. Falls bei einem noch nie zu nahe beieinanderliegende Keyframes aufgetreten sind, kann man die Funktion auch deaktiviert lassen.

"Motion based curve modulation": Grundsätzlich ist dies ein Ersatz für die "crispness modulation" aus der letzten Registerkarte. Wenn man diesen Wert aktiviert (also einen Wert größer als 0% einträgt), dann sollte man die "BR modulation" deaktivieren. Ein Defaultwert wäre 25%. Es ist möglich, daß diese Art der Modulation bessere Resultate liefert (nach der Meinung der Menschen, die diese Art der Modulation vorgeschlagen haben, und denen, die sie in den Maras-hacks nutzten). Grundsätzlich moduliert diese Funktion die Bitrate in Abhängigkeit von der Bewegung ("motion"). Nehmen wir mal einen Bewegungswert von 300 an, und modulation wurde auf 30% gesetzt. Wenn die Bitrate bei 600 liegt, zieht die Funktion 30% von 600 (=180) von der Bitratenkurve ab, resultierend in einer Bitrate von 520. Wenn der Bewegungswert 150 ist, zieht sie 30%/2 = 15% von der Bitrate ab; die Funktion arbeitet also linear.

"Curve compression" komrimierte die Kurve um ihren Durchschnittswert. Hier gibt es zwei optionen: "symmetric" ist die alte Art der Komprimierung der Kurve. Mögliche Werte wären 25-40% für 1 CD Rips und 10-20% für 2 CD Rips.

Man kann auch den "Calc..."-Knopf benutzen, der diesen Wert von selbst ausfüllt, wenn ein vernünftiger "Crosspoint" eingestellt wurde (Ich erwähne später, wo man diesen einstellt... außerdem kann man in der Readme von NanDub auch mehr Informationen über den "Crosspoint" finden).

"Asymetric" kann benutzt werden, um den relativ unbewegten Szenen weniger bits zuzuteilen. Mögliche Werte wären 15% für "low" und 25% für "high".

"Luma correction" korrigiert die luma-Werte (= Leuchtstärke). Während des ersten Durchgangs wird jeder Frame auch auf "luma noise" (= Rauschen der Leutstärke) hin untersucht. Frames mit viel Kontrast haben einen hohen "luma noise"-Wert, Frames mit wenig Kontrast einen niedrigen, also muß für Frames mit niedrigen "luma noise"-Werten die Bitratenkurve korrigiert bzw. Bits zu ihr hinzugefügt werden. Frames unter dem eingestellten Schwellenwert erhalten mehr Bits. Je weiter sie von dem Schwellenwert entfernt sind, desto mehr Bits erhalten sie bis zu einem Schwellenwert von über 2, ab dann wird schwächer korrigiert. Wenn der Schwellenwert auf 10 und 30% "correction" eingestellt wurde, dann wird bei "luma noise" 6%, bei "luma noise" 8 12%, bei "luma noise" 7 18%, bei "luma noise" 6 24%, bei "luma noise" 5 30%, bei "luma noise" 4 25%, bei "luma noise" 3 18%, bei "luma noise" 2 12% und bei "luma noise" 1 6% Korrektur auf die Bitrate angewandt. Wie man also sehen kann, handelt es sich um ein proportionales Dreieck, mit dem maximum an Bitratenzuwachs bei der Hälfte des Schwellenwertes und einer proportionale Abnahme des Aufschlags auf die Bitrate zu beiden Seiten. Außerdem verlieren frames, die mit höchsten Bitraten kodiert werden, auch noch bits ij Abhängigkeit von ihren "luma noise"-Werten. Nachdem die Frames korrigiert wurden, verliert ein Frame mit einem "luma noise"-Wert von 20 mehr Bits als ein Frame mit einem Wert von 15. Ich schlage 10 für den Schwellenwert und 30 für den "gain"-Wert vor.

Unter "End credits start at frame" sollte man die Framenummer des Frames, ab dem der Abspann startet, eingeben, damit das Programm ab dort automatisch die Bitrate auf den Wert senkt, den man in dem nächsten Feld angeben kann. Man kann hier ruhig einen Wert unter 300 kbit/s eingeben, der Abspann braucht keine hohe Bitrate. Ich nehme dort immer 150 kbit/s, niedriger ist auch möglich, aber über 100 kbit/s sollte man schon bleiben.

"Low-pass" and "High-pass" setzen das Minimum / Maximum für die Bitratenkurve. Dies verhindert eine exzessive Nutzung der Bitrate in manchen Szenen, was zu Problemen bei der Wiedergabe auf langsamen Computern führen kann. "High-pass" von 270 fuktionierte bis jetzt gut für mich. Wenn man 1-CD Rips erstellt, sollte man den "Low-pass"-Wert auf 2500-3000 setzen, um zu hohe Bitraten zu verhindern. Bei 2 CD Rips kann man auch ruhig höhere Werte nehmen, wie z.B. 5000, es sei denn, daß die Hardware Probleme bei der Wiedergabe von so hohen Bitraten macht. Die Bitratenkurve wird für eine Art von "deviation control" (=Abweichungskontrolle) genutzt, daher kann die Bitrate auch schon mal unter die "High-pass"-Bitrate gehen, aber die eingestellte höchste Bitrate wird jedoch nie überschritten. Die Abweichungskontrolle kümmert sich darum, daß die "Gesamtbitrate" möglichst genau eingehalten wird, damit man keine zu große .AVI-Datei erhält.

Die Bitraten-Neuverteilung kann voreingestellt (ein konstanter Wert wird überall hinzuaddiert) oder proportional (Bereiche mit hohen Bitraten erhalten auch mehr Bits) erfolgen.

Zuletzt noch der "smoother"-Wert: über ihn wird eingestellt, wie die Bitratenkurve abgeflacht bzw. umgerechnet wird. Ich schlage einen Wertebereich von 2-5% vor.

Nun zur "Gauge" (grobe Übersetzung: Messlatte):

Im Codec wird das "databit-reservoir" als ein Reservoir von Bits, die für 5 Sekunden Key- und Deltaframes reichen, definiert (z.B. wenn die bitrate bei 900 kbit/s liegt, wird ein Reservoir von 900 * 5 = 4500 Bits benutzt). Um die Birate festzustellen, benutzt der Codec eine Art Messlatte, die nach jedem Frame neu justiert wird: gauge_new = gauge_old + bitsperframe - sizeofframe (gauge_neu = gauge_alt + bitsproframe + groessedesframes).

Diese Messlatte hat einen großen Einfluss drauf, welche Kompressionsstufe der Codec benutzen wird. Wenn sie auf einen Minimalwert abfällt, werden die Frames immer weniger Bitrate erhalten, und wenn sie zu gering wird (unter 5%), werden vielleicht auch frames ausgelassen, da nicht genügend Bitrate übrig ist. Die Minimal- und Maximalwerte von "gauge" sind dafür da, genau dies und auch eine zu starke Ausnutzung der Bits zu verhindern. Für 1 CD rips sollte man ungefähr 30 min und 80 max, und für 2 CD rips 40 min 100 max benutzen. Wenn die finale Filmgröße außer Kontrolle gerät, muß man diese Werte ein wenig herabsetzen (10%-Schritte wären vernünftig). Man kann nun auch einen Startwert für "gauge" angeben (in den früheren Versionen lag der immer bei 100%).

"Playback delay" (= Abspielverzögerung) hat einen Einfluss auf die Abweichungskontrolle, die weiter oben beschrieben wurde... beeinflusst wird, wie viel Zeit der Algorithmus zur Entscheidungsfindung hat. Zum Beispiel erlauben 45 Sekunden Stille (= "still") eine Kompensation von 10 Sekunden Action, die viel Bitrate verbrauchen, wenn der Rest halt nicht so viel benötigt.

Zum Schluss gibt es noch die Korrekturen an "low-bitrate conditions" (Bedingungen für niedrige Bitraten): Diese sollen einen Nebeneffekt der minimal erlaubten Bitrate verhindern. Bei sehr niedrigen Bitraten geht die Bitratenkurve unter die minimal erlaubte Bitrate. Der Codec bleibt trotzdem auf dieser Bitrate und die "deviation" wird dementsprechend eingestellt, aber der "gauge"-Wert tendiert in diesen Fällen zu sehr hohen Werten, was zu einer zu starken Bitausnutzung in der nächsten "normalen" Szenen führen kann. Wenn diese Funktion aktiviert wird, sollte man auch "modulated" anwählen.

Die zwei "hacks"-Werte sollte man in Ruhe lassen, also sie auf 0 lassen. Der Keyframe Boost ("KF boost") erhöht den "gauge"-Wert ein klein wenig, wenn ein Keyframe eingefügt wird. "Freeze" zwingt den Codec zur Annahme eines bestimmten, eingestellten "gauge"-Wertes. Dies wird im ersten Durchgang angewendet (wo "freeze" auf 100% eingestellt ist, so daß dem Codec niemals niemals die Bits ausgehen.

Und nur zur letzten Registerkarte: "Compression levels" (= Kompressionslevel):

Unter diesen Einstellungen kann man die maximalen und minimalen Kompressionsstufen einstellen und diese noch spezieller zu konfigurieren. Normalerweise benutzt DivX Komprimierungsstufen von 2-16, aber hier kann man auch dies ändern. Wenn man einfach nur einen maximalen Kompressionslevel einstellen will, braucht man nur die erste Zeile, und man sollte alle anderen Zeilen auf den Wert 300 in den "when motion over"-Eingabefeldern einstellen. Oder man kann einstellen, welche minimalen oder maximalen Kompressionsstufen bei bestimmten Bewegungswerten benutzt werden sollen

Hier ist die große Neuigkeit im Vergleich zu den alten Guides: Das einzige, was man einstellen muss, ist die erste Zeile, die minimale und maximale Komprimierungsstufe. Vorschläge wären 2-8 für 1-CD-Filme, für 2-CD-Filme kann man auch niedrigere Werte nehmen, wie 2-6 oder 2-5. Wenn die Filmdatei am Ende doch zu groß wird, muss man entweder hier oder beim Bitraten-Reservoir Veränderungen machen (d.h. weniger agressive Einstellungen verwenden... also einen höheren maximalen "DRF"-Wert und geringere minimum/maximum "gauge"-Werte einstellen).

Ansonsten kann man mit Nandub auch noch die Qualität der Keyframes beeinflussen, indem man einen "DRF"-Wert für die Keyframes einstellt. Dies funktioniert im Zusammenhang mit den Minimum und Maximum "DRF"-Werten (in der ersten Zeile). Wenn der Max DRF-Wert niedriger als die Keyframe-Qualität ist, wird der Keyframe mit dem maximalen DRF-Wert kodiert. Wenn der Max DRF-Wert höher als die Qualität des Keyframes ist, wird der Keyframe mit dem "keyframe quality DRF" oder einem höheren DRF (aber niedriger als Max DRF) kodiert. Man sollte weiteres über diese Funktionen in der readme.doc nachlesen, vor allen Dingen, wenn man meint, dass Enkodierungsprobleme hier ihren Ursprung haben. "Keyframe max quality" stellt die maximal genutzte Komprimierung für Keyframes ein. Das wird nur funktionieren, wenn man die Szenenwechsel im ersten Durchgang gesammelt hat, und wird auch nur benutzt, wenn der Wert niedriger als der eingestellte Max DRF-Wert ist. Die Qualitätskontrollalgorithmen (AntiFreeze / AntiShit) beachten diesen Wert nicht, und diese Funktion kann zu ausgelassenen Frames führen, wenn sie falsch benutzt wird, also sollte man Nandos Ratschlag folgen und den Wert auf den voreingestellten 31x lassen.

Es ist ratsam, die anderen DRF-Einstellungen nicht mehr zu benutzen, wenn man nicht wirklich ganz genau weiß, was man tut (ca. 97% aller Anwender wissen das wohl nicht ;) ). Hier nur ein kleines Beispiel, wie das alles so funktioniert. Sagen wir einmal, ein Frame hat einen Motion-Wert von über 200. Nandub vergleicht nun diesen Wert mit der im Screenshot gezeigten Tabelle. Da alle Werte von "when motion over" auf 300 eingestellt wurden, wird nur die erste Zeile benutzt. Angenommen, man hätte folgende Einstellungen vorgenommen: "use Min: 3x, max: 5x when motion over 195". Da der Frame einen Motion-Wert von über 196 hat, werden die Einstellungen dieser Zeile verwendet. Die überprüfung startet immer in der ersten Zeile, also sollte man beim Benutzen von DRF mit den niedrigen DRF-Stufen bei "low motion" Einstellungen beginnen und mit den hohen DRF-Stufen für hohe Bewegungswerte. Warum sollte man stärker komprimieren bei viel Bewegung? Weil das menschliche Auge bei hohen Bewegungen nicht viele Details erkennen kann, also kann man diese Frames stärker komprimieren, ohne dass das Auge bemerkt, dass jeder Frame einzeln betrachtet ziemlich hässlich aussieht. Als ein Nandub-Profi sollte man diese Werte vielleicht benutzen, wenn man 2-CD-Rips erstellt. Um dabei lange trial&error Sitzungen zu verhindern (also ständig herumzuprobieren), sollte man Dbgview während des zweiten Durchgangs laufen lassen. Dann kann man den enkodierten Film analysieren, die Bewegungswerte der schlecht aussehenden Filmteile ermitteln und so wissen, welche DRF-Einstellungen geändert werden müssen. Falls dies unverständlich war... keine Sorge... dann sollte man diese Einstellmöglichkeiten einfach außer Acht lassen. Man kann auch gute RIPs ohne die DRF-Einstellungen machen.

Ein paar Worte darüber, wie der Codec funktioniert: Als erstes wird die Bewegungskompensation durchgeführt, dann eine Grafik mit 32 zusätzlichen Pixeln auf jeder Seite erstellt, auf die dann die Schärfeeinstellungen angewendet werden, dann wird der Frame mit der ersten Kompressionsstufe kodiert, dann wird der Schwellwert ("gauge") betrachtet und über den Kompressionsgrad entschieden. Danach werden die Einstellungen dieser Registerkarte benutzt, was einem die totale Kontrolle über den gesamten Kodierungsprozess gibt. Nur mit viel Zeit wird man die perfekten Einstellungen herausfinden, wenn diese überhaupt existieren. Man sollte einfach mal eigene Einstellungen ausprobieren ;) Man sollte aber die Wahl der Kompressionsstufen nicht zu stark limitieren, ansonsten wird man Probleme mit der endgültigen Größe des Films bekommen.

Noch ein Hinweis: Der Hauptunterschied zwischen DivX Low Motion und DivX Fast Motion sind die fest in den Codec programmierten Kompressionseinstellungen. Fast Motion hat eigentlich einfach nur ein voreingestelltes DRF Minimum von 7 und geht bis zum Wert 16, währen Low Motion bis zur Stufe 2 hinaufgehen kann. Fast Motion ist vielleicht ein wenig besser beim Erkennen von Bewegungen, aber der Unterschied ist kaum bemerkbar. Also kann man wirklich beruhigt den Fast Motion Schieber auf 300 stellen, und nur mit den DRF-Einstellungen arbeiten. Oder man kann auch beispielsweise DRF 7-16 für Bewegungen über 280 benutzen, was denselben Effekt wie eine Codec-Umschaltung (von Low Motion nach Fast Motion) bei dem Wert 280 in dem "motion detection"-Eingabefeld hat.

FlaskMpeg Hinweis: Wenn man FlaskMpeg zum Frameserven benutzt hat, sollte man auch den Ton komprimieren. Dies erreicht man, indem man "Audio" - "AVI audio", dann "Audio" - "Compression" auswählt und den Audio-Codec konfiguriert.

Der letzte Schritt vor dem Enkodieren ist die Einstellung der internen VirtualDub Szenenwechselerkennung: Klicke auf "Options" - "Preferences" und wähle die "Scene" Registerkarte an:

Man kann mit den dortigen Einstellungen herumspielen, aber die Voreinstellungen funktionieren meist recht gut (und außerdem haben wir ja Nandub so eingestellt, dass ein Keyframe automatisch bei falscher interner Erkennung eingefügt wird).

Man sollte einen stärkeren "Interframe cut"-Wert für sehr dunkle Filme benutzen.

Oder man kann Nandubs alternative Einstellungen benutzen, die in der Regel besser funktionieren. Dies ist die Alternative, die ich bei dem Teil über die DivX-Setup Einstellungen erwähnte. Diese Szenenwechselerkennung (SCD) basiert in Wirklichkeit eher auf Helligkeitswerten als auf Bewegung. Das funktioniert wie folgt: Wenn "curr_diff" > "last_diff" ist, wird der Frame zu einem Keyframe. "curr_diff" = der absolute Unterschied zwischen dem jetzigen und dem letzten Frame in Bezug auf Pixel im Helligkeitsbereich. "last_diff" wird dann auf "last_diff" = "curr_diff" * Multiplikator / 10 gesetzt, und wenn "last_diff" danach unter 10000 liegt, wird er auf 10000 gesetzt.

Zuletzt sollte man die SBC-Registerkarte anwählen:

Hier kann man den "crosspoint"-Wert (die Übergangsstelle) einstellen, die von dem "Calc..."-Knopf benutzt wird, der vorher erwähnt wurde. Falls man das Gefühl hat, dass der mit "Calc..." errechnete Wert zu hoch ist, sollte man den "crosspoint"-Wert verringern

Der "crosspoint"-Wert wird bei der Berechnung der Kurvenkompression ("Calc..."-Knopf) benutzt. Bis jetzt gibt es keine Faustregel, auf welchen Wert er eingestellt werden sollte, aber ein Wert von 230 - 280 für 1-CD-Rips und von 350-460 für 2-CD-Rips scheint nach ein paar Tests recht gut zu funktionieren.

Weitere Informationen zu dem "crosspoint"-Wert kann man in der Nandub Dokumentation finden.

Durch einen Klick auf "Save" speichert Nandub alle Einstellungen ab

Wenn erst mal alles eingestellt ist, kann nun der zweite Durchgang mit einem Druck auf "F7" gestartet werden. Aber man sollte überprüfen, dass alle Filter immer noch richtig konfiguriert sind, bevor man mit dem zweiten Durchgang startet! Ich hoffe, dass all diese Einstellmöglichkeiten nicht zu verwirrend sind.

Während des Enkodiervorgangs kann man sich das Statistik-Fenster anschauen:

Obwohl die Vorschau nett aussieht, empfehle ich, "Show input video" und "Show output video" zu deaktivieren. Die Höhe der angezeigten Balken repräsentieren die Größe jedes Frames. Blaue Balken sind Low Motion-Frames, grüne High Motion-Frames (die man mit den vorgeschlagenen Einstellungen nicht sehen sollte). Rote Balken sind Keyframes der internen Bewegungserkennung (die man durch eine Einstellung von 100% ausschalten kann), gelbe Balken sind Keyframes der alternativen Bewegungserkennung. Die weiße Kurve ist die "stats"-Kurve (die angepeilte durchschnittliche Bitrate), und die türkise Kurve stellt die Bewegungskurve da. Wie man unten sehen kann, wird in dem Graph auch die aktuelle Bitrate des Videos angezeigt. Wenn die weiße Kurve nivelliert (ganz flach wird), hat sich das Limit für die minimale Bitrate eingeklinkt, umd die Bitrate vor einem weiteren Einbrauch zu bewahren.

Die Vorschaufenster sollten auch deshalb deaktiviert werden, weil sie ein wenig hinter der angezeigten Kurve herhinken, und so etwas verwirrend wirken.

Wenn man wärend des Enodierens an dem Computer weiter arbeiten möchte, kann man die Priorität des Kodierungsthreads herabsetzen. Wenn man "idle" einstellt, wird Nandub nur die CPU-Rechenzeit benutzen, die von allen anderen Anwendungen übrig gelassen wird.

Zum Schluss hat Nandub noch eine Sicherheitsfunktion. Wenn man das Programm beendet, werden alle getätigten Einstellungen in der Datei "__last__.vcd" als ein Nandub-Profil abgespeichert. Dies kann nützlich sein, wenn man versehentlich Nandub beendet, oder wenn man vergessen hat, selbst das Profil abzuspeichern.

 

 

>> Zurück


Last edited on: 08/16/2002 | German translation by: Cradle | Content by Doom9.net - The definitive DVD backup resource