SD zu HD hochskalieren?

  • :grübeln:

    Es hatte ihm auch noch keiner wirklich dringend zur Installation von AviSynth 2.60 MT geraten, nur dessen Existenz erwähnt. Ziehen wir mal die Handbremse und warten ab, wie der aktuelle Stand der Entscheidungen ist. Immerhin wurden ja schon einige Funktionen erwähnt, aber alles für einen Einsteiger sicherlich etwas zu ansatzweise.

  • Hallo,
    damit nicht mehr über das Quellformat spekuliert werden muss, habe ich jetzt Mediainfo bemüht:

    Allgemein
    Vollständiger Name : G:\video2.avi
    Format : AVI
    Format/Info : Audio Video Interleave
    Format_Commercial_IfAny : DVCPRO
    Dateigröße : 941 MiB
    Dauer : 4min 24s
    Modus der Gesamtbitrate : konstant
    Gesamte Bitrate : 29,8 Mbps
    verwendete Encoder-Bibliothek : Tdattc_O

    Video
    ID : 0
    Format : DV
    Format_Commercial_IfAny : DVCPRO
    Codec-ID : dvsd
    Codec-ID/Hinweis : Sony
    Dauer : 4min 24s
    Bitraten-Modus : konstant
    Bitrate : 24,4 Mbps
    BitRate_Encoded/String : 28,8 Mbps
    Breite : 720 Pixel
    Höhe : 576 Pixel
    Bildseitenverhältnis : 4:3
    Ursprüngliches Bildseitenverhältnis : 4:3
    Modus der Bildwiederholungsrate : konstant
    Bildwiederholungsrate : 25,000 FPS
    Standard : PAL
    ColorSpace : YUV
    ChromaSubsampling : 4:2:0
    BitDepth/String : 8 bits
    Scantyp : Interlaced
    Scanreihenfolge : unteres Feld zuerst
    Bits/(Pixel*Frame) : 2.357
    TimeCode_FirstFrame : 00:00:00:21
    TimeCode_Source : Subcode time code
    Stream-Größe : 908 MiB (97%)
    Kodierungseinstellungen : ae mode=full automatic / wb mode=automatic / white balance= / fcm=manual focus

    Audio
    ID : 1
    Format : PCM
    Format-Einstellungen für Endianess : Little
    Format-Einstellungen für Sign : Signed
    Codec-ID : 1
    Dauer : 4min 24s
    Bitraten-Modus : konstant
    Bitrate : 1 024 Kbps
    Kanäle : 2 Kanäle
    Samplingrate : 32,0 KHz
    BitDepth/String : 16 bits
    Video Verzögerung : -840ms
    Stream-Größe : 32,3 MiB (3%)
    Ausrichtung : Ausgerichtet an Interleaves
    Interleave, Dauer : 998 ms (24,96 Video-Frames)

    DVCPRO heisst dann wohl, dass es doch komprimiert it. Dachte immer, dass ich erst bei der finalen mpeg2-Ausgabe komprimiere.

  • Es ist schon komprimiert, aber noch recht verlustarm. Du hast hier eine Video-Bitrate von 24,4 Mbps laut Header-Informationen.

    Wäre es unkomprimiertes YUV 4:2:0 (FourCC: YV12), hätte das Video 720 * 576 Pixel * Ø12 bit/Pixel * 25 Frames/Sekunde = 124,416 Mbps (also das Verhältnis 5:1 passt etwa).

    Bei MPEG2 kann die Kompression um etwa 20:1 liegen (bei Ø6 Mbps). Das wird vor allem dadurch erreicht, dass Gruppen von etwa einem Dutzend Bilder (GOP) als Einheit verwendet werden und weitgehend nur Unterschiede zwischen ihnen gespeichert werden. Bei DV dagegen ist jedes Frame unabhängig von anderen, dadurch lässt es sich leichter beliebig schneiden, aber nicht so effizient komprimieren.

  • @Groucho: Danke für die Korrektur

    Sollte der Ausgangsfilm tatsächlich 4:3 sein, sieht das Upscaling nach 1280x720 so aus:

    nnedi3_rpow2(rfactor=2, cshift="spline36resize", fwidth=960, fheight=720)
    AddBorders(160, 0, 160, 0)

  • Hab mal versucht, Eure Vorschläge in ein Script zu packen, wobei ich mit dem Seitenverhältnis noch nicht sicher bin.
    720*576 ->1.25 -> ist also weder 4:3 (1.333) noch 16:9 (1.778) ??!!
    Mediainfo sagt aber 720*576 sei 4:3 ??!!

    Mein Script liest also ein, deinterlaced, behält Framerate und skaliert hoch, richtig?
    Ist noch kein Filter a la Lanczos oder ähnliches drin, der benachbarte Frames vergleicht.

    ###################
    # MeinVideo.avs
    ###################

    Import(.....\QTGMC-3.32\QTGMC-3.32.avs")
    LoadPlugin("....\dgmpgdec158\DGDecode.dll")

    # Read source file
    AVISource("MeinVideo.avi")

    # Damit die Feldreihenfolge stimmt
    AssumeBFF()

    # Deinterlacen
    QTGMC(Preset="Slower")

    # Add this line to keep original frame rate, leave it out for smoother doubled frame rate
    SelectEven()

    # Upscalen nach hdst
    nnedi3_rpow2(rfactor=2, cshift="spline36resize", fwidth=960, fheigth=720, qual=2)

  • SD-Video auf DV oder DVD ist immer in der Breite gestaucht (anamorph) gespeichert. Es muss zur korrekten Darstellung entzerrt werden, und zwar (nach Methode "Generisches Seitenverhältnis") so weit, bis die entzerrte Bildfläche ein Seitenverhältnis von entweder 4:3 oder 16:9 bekommt, von 720x576 entspräche das entweder 768x576 (4:3) oder 1024x576 (16:9). Die Höhe bleibt konstant, sonst würde das Interlacing versaut werden, wenn welches vorhanden wäre.

    Die andere Methode der Entzerrung nach den Normen der Fernsehtechnik – ITU-R BT.601/709 – weicht davon leicht ab, ist aber nur sinnvoll, wenn auch wirklich Fernsehtechnik bei der Aufzeichnung im Spiel war.

    Weil HD-Video immer ohne Stauchung vorliegt, kann man sich so einen Zwischenschritt aber sparen und gleich vom anamorphen SD-Format direkt auf das entzerrte HD-Format vergrößern, wenn man das Interlacing entweder dabei beachtet oder aber wegrechnet, bevor man skaliert.

    HD-Video muss am Ende ein 16:9-Seitenverhältnis haben; wenn du auf ein 4:3-Verhältnis hochskalierst, brauchst du also noch links und rechts schwarze Balken (Pillarbox) mit AddBorders, siehe Antwort von hdst.

    Da du ein AVI-Video lädst, brauchst du die DGDecode.dll nicht als Plugin zu laden.

  • Mit dem Hochskalieren habe ich mich auch schon mit meinen S-VHS Aufnahmen und mit meinen Aufnahmen auf Mini-DV im Winter beschäftigt. Damals im anderen Forum (Edius) habe ich Hinweise und Tipps vom Goldwingfahrer bekommen und mit anderen Varianten verglichen. Herausgekommen ist am Ende die Bearbeitung mit Avisynth, klar bei analog und auch bei Mini-DV angewendet, mit TempGaussMC unter Beibehaltung der der Ausgangsgröße (720x576), wobei ich mich für progressiven Material entschieden habe und auch auf SelectEven() verzichtete. Ausschlaggebend dafür war die Software Edius 5.x, in der alle zwingende Korrekturen wie Weißabgleich, Farbbalance, etc und ein Stabilisator zum Einsatz kommen. Dasselbe müsste für die freie Downloadversion von der cS2 Suite oder mit Premiere Pro 2 von Adobe möglich sein. Es machte keinen Unterschied, ob von der Software oder vom modernen LED-TV hochskaliert wird. Man kommt um gewisse Korrekturen nicht herum, vom den Schnitt des Materials bis hin zu den Szenenwechsel mit dem Änderung der Lichtverhältnisse.
    Wenn für die Ausgabe des Videomaterials in HD oder auch eben in SD ähnliche Software vorliegt macht die Hochskalierung vorher über Avisynth meiner Meinung nach keinen Sinn, wenn auf der TimeLine geschnittene Szenen korrigiert werden müssen und es erst danach zur Ausgabe kommt. Bei Hochskalierung von bereits perfekten Materials trifft mein Beitrag natürlich nicht zu!


  • Da du ein AVI-Video lädst, brauchst du die DGDecode.dll nicht als Plugin zu laden.


    Stattdessen wird nnedi3.dll für das Upscaling benötigt und die dll's für QTGMC.

    Einmal editiert, zuletzt von hdst (13. Juli 2013 um 00:08) aus folgendem Grund: Ergänzung

  • Hallo,

    jetzt habe ich Avisynth 2.6 MT installiert und die avisynth.dll im Ordner SysWOW64 ersetzt,
    da ich Win7 64 Bit habe.
    Die Avisynth plugins habe ich in dessen plugin Ordner gelegt, incl. mt-masktool-26.dll (Stand 16.07.13).
    Natürlich habe ich QTGMC installiert und dessen plugins in den Avisynth plugin-Ordner,
    sowie die ffw3.dll und die libfftw3f-3.dll in den syswow64 Ordner geschoben.

    Nun habe ich folgende Probleme:

    1. Wenn mein Sript nur aus avisource("video.avi") wird aus 16:9 ein Seitenverhältnis von 5:4 !
    2. Mit QTGMC läuft das Video extrem langsam und stockt teilweise sogar ganz.
    3. Mit nnedi3_rpow2 läuft das Video garnicht mehr und es kommt folgende Meldung:
    "Scipt error: nnedi3_rpow2 does not have a named argument "fheigth"

    Weiß jemand Hilfe?

  • 1.: Das Video wird so dargestellt, wie es abgespeichert wurde. Also eventuell auch "anamorph" = in der Breite gestaucht. Anamorphe Videos haben normalerweise Hinweise in sich, die einem Mediaplayer sagen, er möge doch bitte beim Abspielen das Bild entzerren. AviSynth kümmert das nicht: Hier wird es so gezeigt, wie es abgespeichert vorliegt, und wenn das beim Abspielen entzerrt werden soll, muss die Kopie am Ende wieder diese Seitenverhältnis-Hinweise bekommen. Wie das passieren muss, hängt vom Video- und Kontainerformat der Kopie ab. Da HD-Videos nicht anamorph sind, muss im Skript die Höhe und die Breite mit einer der Resize-Funktionen in verschiedener Stärke skaliert werden, damit das HD-Video korrekt entzerrt vorliegt.

    2. QTGMC ist ein sehr rechenaufwändiger Filter. Der ist nicht dafür gedacht, dass man sich die Filterung in Echtzeit anschauen kann. Überhaupt ist AviSynth nicht für die Echtzeit-Verarbeitung vorgesehen: Wenn ein Filter mehr Rechenzeit braucht, dauert es eben – Hauptsache das Ergebnis ist qualitativ hochwertig und korrekt gefiltert worden. Statt dessen berechnet man in aller Ruhe ein neues Video und schaut sich das dann an, wenn es fertig ist. Wenn man nur kurz was testen will, gibt am eben nur einen kleinen Ausschnitt des Videos aus, z.B. mit dem Filter Trim(), der dann vor der endgültigen Konvertierung wieder rauskommt.

    3. NNEDI3 v0.9.4 von tritical hat definitiv diesen Parameter in dieser Funktion. Hast du die Zeile auch sauber abgetippt? Zeig mal dein komplettes Skript in einem CODE-Block.

    Aus der "nnedi3 - Readme.txt":

    Code
    nnedi3_rpow2(int rfactor, int nsize, int nns, int qual, int etype, int pscrn, string cshift,
                     int fwidth, [B]int fheight[/B], float ep0, float ep1, int threads, int opt, int fapprox)
  • Zeig mal Dein komplettes Skript und einen kleinen Quellen-Ausschnitt.
    So kanns man nachstellen.

    Klicke ich auf "xyz.avs" so habe ich die Wahl....Editor und mpc.
    Statt mpc kann man auch VDub für die Vorschau nehmen.

    Script abarbeiten mit VDub oder mit dem Procoder.

    Zitat

    Da HD-Videos nicht anamorph sind


    Ausnahme: HDV 1440 x 1080.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Ach so, ja ... die Reihenfolge der Buchstaben beachten: bei "height" g - h - t, bei "width" d - t - h.

    Und ja, es existieren anamorphe HD-Formate. Aber nicht auf Blu-ray, nur bei AVCHD und HDV. Danke für die weitere Verwirrung des Einsteigers, der auch gar kein anamorphes Video geplant hatte... ;)

  • Nichts zu danken :ani_lol:

    der TE fängt neu an mit Avisynth,das Andere in Sachen Videobearbeitung beherrscht er schon länger.

    Stichwort: nnedi3
    da wurde klammheimlich eine andere Version ins Netz gestellt ??
    Links Meine Version 13`414 KB
    rechts Deine..LigH 13`421 KB

    http://abload.de/img/nnedi31ekti.jpg

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

    Einmal editiert, zuletzt von Goldwingfahrer (17. Juli 2013 um 10:59)


  • der TE fängt neu an mit Avisynth,das Andere in Sachen Videobearbeitung beherrscht er schon länger.


    Danke für die Blumen. :)

    - Zu Punkt 1.: Das Video wird sowohl in VirualDub als auch im Media Player mit 5:4 abgespielt.
    Wird mit fwidth=940 und fheight=720 das gerenderte Video dann in 16:9 wie das Ausgangsvideo dargestellt?

    - Hatte tatsächlich einen Buchstabendreher! Damit ist Punkt 3. erledigt.

    -Auch Punkt 2. leuchtet mir ein. Aber wie berechne/exportiere ich denn in VirtualDub mein Video?
    Einfach "Save as .avi"? Oder über "Export"?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!