privhp.jpg (7910 Byte)

Resize (Skalierung) von Video-Material

Autor.gif (7348 Byte)

Resize benötigt man um z.B. PAL-SD-Material auf HD-Material zu skalieren. Umgekehrt kann man auch von HDV-Material auf PAL-SD-Material zur Erstellung von DVDs skalieren. Die NLE-Programme machen das oft nicht besonders gut, weil sie davor nicht automatisch das Interlaced-Material deinterlacen.

Nachfolgend beschreibe ich kurz den Vorgang das Resize am Beispiel Premiere Pro 2.0 -> Frameserver -> VirtualDub, dem Freeware-Programm MPEG-Streamclip, einem Avisynt-Script und Anwendung damit im ProCoder Express sowie TMPGEnc.

Ich habe bereits einige Tests durchgeführt um HDV-Material per NLE auf DVD kompatibel herunter zu skalieren. Die Ergebnisse kann man hier sehen. Wenn man genau hinschaut, erkennt man, dass die Ergebnisse unterschiedlich ausfallen bezüglich Detailreichtum (siehe Wolkenzeichnung) und auch bezüglich der Farbintensität (man beachte besonders das Rot)...Bessere Ergebnisse bekommen wir, wenn wir dei Originalfiles per VirtualDub deinterlacen und anschließend resizen und so der Encodierung für ein Disk-Format übergeben. Für die Skalierung sollten wir also progressives Material verwenden. Pixelartefakte und Treppeneffekte werden dadurch vermieden.

Mit dem VirtualDub-Filter "resize" können wir Video-Clips kleiner oder größer machen. Wir können per Frameserving von Premiere Pro 2.0 Frame für Frame unseres Originalmaterials ohne Verlust an das Videoschnittprogramm VirtualDub(oder VirtualDub Mod) übergeben und dort weiter behandeln.

Bevor wir aber resizen, müssen wir das Material deinterlacen, so wie es hier beschrieben ist.

Für das Deinterlacing benötigen wir folgende Dateien/Programme:

resize-Filter in VirtualDub
VirtualDub
(ich benutze die deutschsprachige Version!)
Frameserver

Zunächst installiert man VirtualDub und man läßt dafür eine Schaltsymbol-Verknüpfung auf dem Desktop anlegen. 

Bezüglich Frameserverinstallation in Premiere Pro 2.0 habe ich hier etwas verfaßt.

Wir starten jetzt P-Pro legen ein HDV-Projekt an und laden einen Clip in die Timeline und übergeben diesen Clip Bild für Bild per Frameserver an VirtualDub. Das Vorgehen ist identisch mit dem Vorgang mit der Übergabe zum Deshaker.

Resize des Clips in VirtualDub:

Wir starten VirtualDub mit der Schaltfläche vom Desktop aus...

  1. Mit der Tastenkombination Strg + O laden wir den vom Frameserver vorbereiteten Clip in VirtualDub

  2. Wenn wir an dem Timeline-Schieber in VD etwas ruckeln wird der Clip sichtbar. 

  3. Jetzt aktivieren wir den Deinterlacing-Job wie beim Deinterlacing-Verfahren beschrieben

  4. Nun klicken wir auf der Menüleiste auf Video/Filter. Es geht ein Fenster auf und dort klicken wir auf den Schalter "Hinzufügen". Jetzt werden sämtliche Filter angeboten, wir wählen "resize" und klicken auf OK. Es geht jetzt das Einstellfenster des resize auf:



    Bei High-Quality Material wählen wir im Filter Modus "Precise Bicubis" aus, bei weniger anspruchsvollen Formaten dagegen "Precise Bilinear". 

    Soll hochskaliert werden, dann geben wir als Auflösung 1440x1080 ein.

  5. Wir starten VirtualDub nun mit "Enter"

  6. Per Taste F5 können wir uns in der Vorschau ansehen. Gegebenenfalls  ändern wir die Filter-Parameter  um andere Ergebnisse zu bekommen.

  7. Mit der Taste F7 können wir jetzt den Clip als AVI abspeichern. Davor legen wir die gewünschte Kompression fest.

Dieses so erzeugte Video können wir nun der weiteren Bearbeitung per NLE zuführen um zum Beispiel jetzt erst die Beschriftung/Titel hinzuzufügen.

Der Weg zur weiteren Deinterlacing/Resizing-Perfektion führt zur Linksammlung nach /2/.

Downskalierung per Video MPEG Streamclip

Das kostenlose Videotool nach /4/ habe ich bereits öfters auf meiner Homepage erwähnt. Das Toll fordert auf die MPEG2-Playback Komponente von Apple zu installieren die man für ca. 22 €uro kaufen kann. Haben wir die MPEG2-Playback Komponente installiert, dann bekommen wir eine Vorschau der geladenen Datei zu sehen und später eine Vorschau während der Konvertierung.

Hat man nun ein aus dem NLE herausgerendertes MPEG2-1080/50i-Video geladen, dann geht man auf File/Export to AVI und man bekommt folgende Tabelle in die man die Settings z.B. wie im Bild einstellt um auf eine 16:9 AVI das HDV-File zu resizen:

Wegen des gleichzeitigen Interlaced Scaling wird eine AVI-Datei erzeugt mit sehr guter Schärfe und mit sauberen Kanten, besser als es so manches NLE machen kann. Nun haben wir aber immer noch keine kompatible DVD-Datei. Wir laden deshalb diese Datei in ein Authoringprogramm unserer Wahl und erstellen jetzt aus dieser sehr guten Ausgangsdatei eine DVD.

Downskalierung per Canopus HQ Fine:

Hier findet man eine Anleitung, wie man per VirtualDub auf PAL SD oder NTSC SD Videos resizen kann, wenn man über diesen Codec verfügt (z.B. wenn man EDIUS Neo installiert hat). Analog dazu kann man auch mit allen anderen Programmen, die von dem Codec Canopus HQ bedient werden verwenden, z.B. Magix Video deLuxe 17 Premium. Dort kann man dann gleich auch das Authoring durchführen und eine DVD brennen.

Resize per AviSynth

Avisynth und ProCoder EXPRESS und TMPGEnc

Hier /6/ habe ich schon ein wenig über die Arbeit mit Avisynth berichtet.
Mit einem Avisynth-Script und dem ProCoder EXPRESS kann man sehr schnell eine ausgezeichnete Downkonvertierung direkt von HDV auf DVD kompatible MPEG2-Datei durchführen.

Ich gehe davon aus, dass Avisynth bereits auf dem System installiert ist, ebenso Filter /8/ dazu. Nun muss nur noch ein Script mit folgendem Inhalt geschrieben werden:

LoadPlugin("C:\Programme\AviSynth 2.5\Plugins\dgbob.dll")
DirectShowSource("H:\Konvert\mod-0010.m2t")
DGBob(order=1)
LanczosResize(720,576)

Wir starten jetzt den ProCoder EXPRESS und rufen das AVS-Script dort auf wie eine Videodatei. Sofort beginnt der ProCoder an zu arbeiten und am Ende liegt eine qualitativ sehr gute Datei für das Authoring bereit.  Lanczos zeichnet die Frames sehr scharf, er eignet sich sowohl für Verkleinerungen als auch für Vergrößerungen (von DV auf HDV)...

Avisynth Downkonvertierung

Bei den nachfolgenden Methoden wird das Ausgangsfile zuerst deinterlaced und dann erst skaliert, was unschöne Treppeneffekte oder ausgefranste Kanten vermeidet, wenn man skalieren würde ohne vorher zu deinterlacen.

Ein Script mit guten Ergebnissen hat Scharfis_Brain hier vorgestellt:

LoadPlugin("C:\Programme\AviSynth 2.5\Plugins\tdeint.dll")
LoadPlugin("C:\Programme\AviSynth 2.5\Plugins\dgdecode.dll")
# mpeg laden, neuestes DGIndex und DGDecode einsetzen (wichtig!)
mpeg2source("H:\Konvert\video.d2v",cpu=0) # bei Block- und Mosquitobildung cpu=6
crop(0,0,0,-8) # bei 1080i-HDTV-Aufzeichnungen die unteren 8 Zeilen wegschneiden
TDeint(mode=1,type=3,mthreshl=5,mthreshc=6) # deinterlacen
sharpen(1) # wenn extreme Details gewünscht werden, sonst weg
converttoyuy2() # resizen
Lanczosresize(704,576)
addborders(8,0,8,0) # wenn 720x576 gewünscht werden, sonst weg
assumebff().separatefields().selectevery(4,0,3).weave() # bei re-interlacen auf BFF oder auf TFF ändern auf Wunsch

Die beiden Dateien dgdecode.dll und dgindex bekommt man, wenn man dieses  DGMPGDec-Archiv entpackt. Die Datei video.d2v erstellt man aus einem *.m2t-File mit Hilfe von dgindex.exe in dem man ein *.m2t-File in das Programm holt und mit "Save Project" unter Angabe eines Namens die Datei speichert, z.B. als "video.d2v". Eine Anleitung zur Erstellung von d2v-Projektdateien mit dgindex findet man auch hier.

Anmerkung:

Es gibt jetzt hier auch ein DGAVCDec-Archiv um H.264/AVC-Dateien öffnen und dann nach obigen MPG-Muster Resizen zu können. Hinweise dazu von mir findet man hier. Ein Beispiel präsentiere ich hier.

Dieses Script nun einfach in den Procoder Express laden und abarbeiten lassen. Man bekommt dann eine DVD kompatible Datei.

Scharfis_Brain meinte neulich zu mir: Sinnvoller ist es , mit AVISynth und dem Plug-in yadif.dll, sowie DGIndex(dgdecode.dll) zu arbeiten, weil sonst die Hälfte der Frames verloren geht (aus 50Hz werden 25 Hz) und man obendrein noch im RGB Farbraum rumdoktort. Das folgende Script ist, bei Verwendung der aktuellen Programmversionen, wesentlich schneller und liefert eine stabilere Bildqualität. 

1) die HDV-Dateien mit DGIndex indizieren und ein video.d2v erstellen lassen, automatisch wird auch eine audio.mpa mit erstellt...
2) folgendes AVISynth script erstellen

# Plugins Laden
#MPEG-Decoder von DGIndex
loadplugin("Laufwerk:Pfad\dgdecode.dll")
#Full-Framerate Deinterlacer
loadCplugin("Laufwerk:Pfad\yadif.dll")
#Video laden
mpeg2source("video.d2v")
#horizontal verkleinern (damit das deinterlacing schneller geht)
bicubicresize(704,height) #Alternativ: LanczosResize(704, height)*
#auf 50fps deinterlacen
yadif(mode=1)
#nach YUY2 wandeln, damit ein MPEG2 Encoder damit umgehen kann
#wenn man HcEnc oder QuEnc nimmt, muss converttoyuy2() wegbleiben!

converttoyuy2()
#vertikal verkleinern
bicubicresize(width, 576) #Alternativ: LanczosResize(width, 576)*
#Ausgabefieldorder auf TFF setzen
assumetff()
# 50fps progressive wieder auf 25fps interlaced bringen
separatefields().selectevery(4,0,3).weave()

*Die Nachschärfung über sharpen(1) & Lanczosresize() kann man auch sein lassen, denn das vervielfacht den Bitratenbedarf immens.

3) Dieses Script jetzt in den MPEG2-Encoder eigener Wahl laden und als MPEG2 Encoden auf 704x576 Pixel bei 25fps.

Wo bleibt der gute Ton?

Diesen muss man natürlich noch dazuladen, z.B. so:

#videoplugin laden
LoadPlugin("Laufwerk:Pfad\dgdecode.dll")
#mpa-audioplugin laden
LoadPlugin("Laufwerk:Pfad\mpasource.dll")
#video laden
video=mpeg2source("Laufwerk:Pfad\video.d2v")
#audio laden
audio=mpaSource("Laufwerk:Pfad\audio.mpa")
#video und audio verbinden
AudioDub(video, audio)
#horizontal verkleinern (damit das deinterlacing schneller geht)
bicubicresize(704,height) #Alternativ: LanczosResize(704, height)*
#auf 50fps deinterlacen
yadif(mode=1)
#nach YUY2 wandeln, damit ein MPEG2 Encoder damit umgehen kann
#wenn man HcEnc oder QuEnc nimmt, muss converttoyuy2() wegbleiben!

converttoyuy2()
#vertikal verkleinern
bicubicresize(width, 576) #Alternativ: LanczosResize(width, 576)*
#Ausgabefieldorder auf TFF setzen
assumetff()
# 50fps progressive wieder auf 25fps interlaced bringen
separatefields().selectevery(4,0,3).weave()

Natürlich muß man aber vorher mpasource.dll (siehe AviSynth FilterCollection) in das AviSynth-Verzeichnis kopieren.

In nachfolgenden Programmen beachten, ob TFF oder BFF für die Fieldorder zu setzen ist um "Zittervideos" zu verhindern!

Es gibt da noch andere Funktionen, z.B. "WAVSource" um Audio dazuzuladen...
Es hilft nichts, man muss sich mit dem AviSynth-Syntax intensiv beschäftigen, damit man die mächtigen Funktionen auch selbst einsetzen kann. Ich will ja hier kein Buch schreiben, sondern nur eine Anregung geben.

Wie man eine Videodatei mit dem AVS-Script oben von VirtualDubMod aus ohne Bildqualitätverluste per Frameserver an TMPGEnc z.B. übergeben kann um eine DVD kompatible MPEG-2-Datei zu erzeugen, zeige ich auf dieser Homepageseite.

Aus 1080/50i per AVS-Script Video in 720/50p erstellen

Unser Gehirn sagt uns, eine Auflösung von 1920x1080 Pixel(1080/50i) ist besser als 1280x720(720/50p). Dabei handelt es sich derzeit um einen gewaltigen technischen Unterschied. Die größere Pixelauflösung kann mit Hobby-Kameras nur als zwei ineinander verwobene Halbbilder aufgenommen und genauso wiedergegeben werden. Bei der Wiedergabe auf progressiv arbeitenden Displays, wie sie alle heute verfügbaren Flachdisplays und Projektoren darstellen, muss die fehlende Bildinformation (50 % der Bildpunkte) mit Hilfe eines De-Interlacers interpoliert werden. Die einfachste Methode eines solchen De-Interlacings ist die Kombination der beiden zusammengehörigen Halbbilder zu einem Vollbild. Wegen des Zeitversatzes bei der Aufnahme der Halbbilder führt dies bei bewegten Objekten zu Kammstrukturen. Hochwertige De-Interlacer bestehen daher aus sehr viel komplexeren Algorithmen, sie können jedoch niemals völlig fehlerfreie Ergebnisse liefern. Empirische Untersuchungen haben ergeben, dass bei gleichem Betrachtungsabstand eine progressive Bildwiedergabe(720/50p) im Verhältnis zu einer Interlaced-Bildwiedergabe rund 35 % (Faktor 1,6) weniger Zeilen benötigt, um eine vergleichbare Vertikalauflösung zu erzielen. Auf dieser Grundlage fußt das 720/50p-System, das als Alternative zum bestehenden 1.080/50i-System entwickelt wurde.

Haben wir 720/50p-Videomaterial, dann muß diese Auflösung lediglich noch auf die Auflösung des vorhandenen Flachdisplays skaliert werden, jedoch nicht mehr de-interlaced werden.

Weitere Einzelheiten dazu findet man hier.

Mit dem nachfolgenden AVS-Script werden wir in die Lage versetzt aus vorhandenem 1080/50i-Videomaterial vergleichbares 720/50p- Videomaterial welches dann aus Vollbildern besteht, zu produzieren:

LoadPlugin("C:\Programme\Avisynth 2.55\plugins\dgdecode.dll")
LoadPlugin("C:\Programme\Avisynth 2.55\plugins\mpasource.dll")
Load_Stdcall_Plugin("C:\Programme\Avisynth 2.55\plugins\Yadif\yadif.dll")
video=mpeg2source("F:\720-50p\video.d2v")
audio=mpaSource("F:\720-50p\audio.mpa")
AudioDub(video, audio)
bicubicresize(1280,720) #Alternativ: LanczosResize(1280, 720)
yadif(mode=1)
converttoyuy2()

Bicubicresize entspricht dem Standard-Photoshop-Resize-Filter. LanczosResizer ist ein sehr exakter Resizer, scharf und mit wenig Artefakten, diesen nehme ich meist...

Unser in 1080/50i fertig geschnittene und herausgerenderte Videoprojekt müssen wir zunächst mit dem weiter oben erwähnten dgindex.exe in video.dv2 und audio.mpa zerlegen. Wir nehmen jetzt zum Beispiel den ProCoder EXPRESS und starten dort unser Script und transcodieren es in das 720/50p Format. Im Falle PremierePro CS3 holen wir das AVS-Script mit der Importfunktion (wenn vorher das PremiereAVSPlugin installiert worden ist) und transcodieren dort dann das AVS-Script mit dem Adobe MediaEncoder in 720/50p.

Datei-Größenvergleich in meinem Test:

1080/50i mit 25MBit/s(CBR) = 308 MB
720/50p mit 15MBit/s(CBR)  = 195 MB

Um eine MPEG2HD-DVD zu erstellen, können wir mit ProjectX die 720/50p-Videodatei remuxen, mit ffmpeggui machen wir aus der mp2-Audio-Datei eine ac3-Audio-Datei, muxen dann wieder mit TSmuxer die m2v-Videodatei mit der ac3-Audiodatei zusammen und laden das Ergebnis in TSremux um dort Kapitel festzulegen und eine Bluray-Struktur auf der Festplatte anzulegen. Mit Nero können wir uns nun mit der UDF2.5-Datenstruktur eine miniBluray(MPEG2HD-DVD) auf einen normalen DVD-Rohling brennen die dann 1A mit dem Bluray-Player von Sony-PS3 abgespielt werden kann.

Möge jeder für sich selbst entscheiden, welches finale Videoformat ihm besser gefällt!

Avisynth Upkonvertierung

Für eine Upkonvertierung bietet sich das folgende Script an, also dann wenn wir von einer DVD kompatiblen MPEG2-Datei hochskalieren möchten auf HDTV:

mpeg2source("720x576.d2v")
crop(8,72,-8,-72,align=true)
mvbob()
limitedsharpen(dest_x=1920,dest_y=1080)
addborders(0,0,0,8)
converttoyuy2()
assumetff()
separatefields().selectevery(4,0,3).weave()

An Stelle von TDint im Falle der Downkonvertierung setzen wir bei der Upkonvertierung mvbob als Deinterlacer ein.

Resize per Video Enhancer

Nach /3/ kann man mit diesem recht günstigen Stand-alone-Programm AVI- und WMV-Dateien importieren und im "Advance Modus" sogar VirtualDub-Filter einsetzen. Flächen werden recht radikal geglättet und man bekommt auch schnell ausgefranste Ränder. 

Die Vollversion des Video Enchancers V 1.6 gab es kostenlos beim Kauf von
c't Digital-Video vom 03. September 2007. Man muss lediglich bei der Registrierung angeben auf welche Seite das Programm vorgestellt worde ist und schon bekommt man den Registrations-Code.

Eine Liste von mehr als 100 VD-Filtern, die mit Video Enchancer zusammenarbeiten, findet man auf der Webseite 3/.

Andere Kauf-Skalierungsprogramme sind noch zum Beispiel:

Digital Anarchy Resizer, Red Giant Instant HD und Topaz Enhance

 

Viel Erfolg bei dem Resizing!

 

Linksammlung:

1. Wandlung von HDV in PAL-Format

2. Es werde HDV (Skalierung der PAL Footage)

3. Video Enhancer

4. MPEG Streamclip

5. MiWe-Video (HD-zu-SD-Konvertierungsversuche)

6. Über Avisynth

7. Avisynth in Deutsch

8. Avisynth Filter Collection

9. Deinterlacing

10. Interlacing

11. interlaced-deinterlaced

12. Auflösung

13. Indexieren mit DGIndex

14. Weiteres AVS-Script für Downskalierung, siehe auch hier

15. Downkonvertierung EDIUS/VirtualDub

16. Resizing-Vergleich

Bruno Peter Hennek, 05.08.2007, 19.01.2009