Suche Einführung in Interlaced-Bearbeitung

  • Hallo, Fortgeschrittene,

    bisher habe ich immer nur progressiv gearbeitet - jetzt will ich mal schauen, was man bei Interlaced-Videos so beachten muss.

    Das geht für mich schon los mit dem Öffnen von DVD-Material in AviSynth 2.5x: Wenn ich mittels mpeg2dec3dg.dll eine VOB öffne, die Interlaced-Material enthält, wie sollte ich AviSynth 2.5x am besten darauf einstellen, dass der folgende Clip fieldweise behandelt wird: AssumeFieldBased() / Weave() / Option für mpeg2source(), falls vorhanden?

    Vielleicht gibt's ja schon einen kleinen Leitfaden, was man von Anfang an über die fieldweise Bearbeitung in AviSynth 2.5x wissen sollte...

  • wenn Du fieldweise arbeiten moechtest, gibts zwei moeglichkeiten:
    1) alle fields sequentiell bearbeiten
    2) das Video in zwei fieldstreams (topfield und bottom field je ein stream) zerlegen und nach dem processing wieder zusammenwurschteln

    loesung in avisynth:
    1)
    xxxsource().separatefields
    filterei blabla
    weave

    2)
    input=xxxsource().separatefields
    even=input.selecteven.filterei blabla
    odd=input.selectodd.filterei blabla
    interleave(even,odd).weave

  • Wobei man für die Bearbeitung im Fall 1) beachten sollte, dass hintereinander liegende Pixel räumlich eigentlich übereinander stehen, weil sie aus verschiedenen Fields stammen (eine Zeile Höhenunterschied). Deshalb sollte man diese Methode nicht in Verbindung mit temporalen Filtern verwenden.

    bb

  • ...man sollte... ist mal wieder eine der Geschmacksfragen...

    ich machs trotzdem mit Methode 1) :zunge:

    da meist die Bilder garnicht so scharf sind, als dass es beim temporalen Denoising auffallen wuerde. Ausserdem macht man sich dabei die doppelte zeitliche Aufloesung zunutze, was beim temporalen Denoisen sehr hilfreich ist, da man nur noch die Haelfte der Video-Zeit (Anzahl der Fullframes) fuer den gleichen Rauschunterdrueckungsgrad braucht, als bei Methode 2)

    aber das muss jeder fuer sich entscheiden.
    Methode 2) ist auf jeden Fall die korrektere welche...

  • Methode 1 hat imho den Nachteil, dass es dadurch später beim Encoden sehr schnell zu Nachzieheffekten kommen kann. Besonders, wenn das Bild sowieso schon unscharf und/oder kontrastarm ist.
    Andererseits wirkt's natürlich als Rauschfilter ziemlich effektiv.

  • Zitat

    Methode 1 hat imho den Nachteil, dass es dadurch später beim Encoden sehr schnell zu Nachzieheffekten kommen kann.


    sollte IMHO genau anders herum sein, da man ja, wenn man ueber 5 fields ein temporales denoising-fenster legt, bei methode 1) 2,5 Vollbilder fuer das Zeitfenster des Denoisers hat und bei Methode 2) aber 2x 5 Fields als 5 Vollbilder, was dem doppelten Zeitfenster von Methode 1) entspricht.

    Ich hoffe, das hat jetzt jemand verstanden....

  • Also ich hab's verstanden. ;)

    Schöne Rechnung, aber: Brutal ausgedrückt matschst Du ja bei Methode 1 Bildinfos zusammen, die so gar nicht zusammen gehören.
    Dadurch entstehen sowas wie gefilterte Flächen an Stellen, wo sie nicht hin gehören.

  • Rauschfilterei hab ich eh nicht viel vor.

    Insofern scheint's wohl so zu sein:

    1) Alle Fields zeitlich hintereinander (wohl auch doppelte Framerate?);

    2) die Fields separat sortiert in einzelne Clips.

    Das hilft mir erst mal weiter; der MPEG2-Decoder liefert aber sicher immer Frames, und an das folgende Programm werden auch immer Frames weitergegeben?

    Die Ursache, warum ich Frage, sind eigendlich die folgenden Bilder - Ausschnitte aus dem Tomb-Raider-Trailer: Im ersten sind erhebliche Blöcke zu sehen, im zweiten und dritten besonders gut merkwürdige Farbverschiebungen zwischen den jeweils übernächsten Bildzeilen, also wohl zwischen den benachbarten Zeilen eines Fields. Das zwingt mich zu dem Verdacht, hier könnte jemand den DVD-Trailer falsch encodiert haben - nämlich progressiv; oder wie sonst wäre das erklärbar? Und ließe sich das intelligent fixen (vielleicht Chroma-Blur des betroffenen Fields), oder ist nur noch mit Streifen zu rechnen?

  • Bei (1) machst Du quasi ein Video mit 720x288x50 draus.
    Bei (2) 2 Videos mit 720x288x25.

    Die Decoder liefern Frames, bei interlaced Videos also beide Fields ineinander verschränkt.

    Würde man ein interlaced Video progressiv encoden, würden auch auf dem TV die Interlace-Streifen zu sehen sein.

    Die Blöcke im ersten Bild sind leicht erklärbar, zu wenig Bitrate. Die Farblinien in den anderen Bildern..., hm, da muss ich passen. Mit den Bildausschnitten allein kann ich dazu nichts sagen. Da wären schon ein paar Bewegtbilder nötig.

  • Vielleicht am Wochenende - ich kann keine VOBs per ISDN verteilen, da würde ich ja arm bei; und nochmal komprimiert wäre ja doch schon verfälscht...

    Man beachte vor allem, dass die Blöcke im ersten Bild eigentlich quadratisch sind; wäre es fieldcodiert, müssten die ja vertikal doppelt so hoch sein, also "hochkant" - hab ich doch hoffentlich richtig verstanden...
    __

    Hab mich anscheinend verguckt: Es scheint doch fieldgerecht zu sein - das zeigt zumindest die nun funktionierende Fieldtrennung.

    Relativ gute Zwischenergebnisse kriege ich noch, wenn ich als Parameter für MPEG2Source noch folgende Parameter gebe: CPU=6, iPP=true. Und wenn das noch nicht reicht, gibt's das auch noch für "BlindPP".

    Nur die abwechselnd bunten Zeilen bleiben hartnäckig - in den Fields sind sie komischerweise nicht zu bemerken...

  • Ich hab das Problem gelöst! Das Video als YV12 zu übergeben ist nicht empfehlenswert - gleich nach dem Decodieren in YUY2 konvertieren!

    Ich habe auch festgestellt, dass die selbe Farbverschiebung, wie wenn man einfach in YV12 weiterarbeitet, auftaucht, wenn man nach dem ConvertToYUY2(interlaced=true) noch ein FixBrokenChromaUpsampling() folgen läßt - das wirkt hier also anscheinend implizit, und genau dem Zweck entgegen!

    Also am besten so:

    Code
    mpeg2source("trTR.d2v", CPU=6, iPP=true, iDCT=7)
    ConvertToYUY2(interlaced=true)
    ...
  • Zitat

    Würde man ein interlaced Video progressiv encoden, würden auch auf dem TV die Interlace-Streifen zu sehen sein.


    Sorry, das Stimmt so nicht ganz!

    Man hat zwar einen Rapiden Qualitaetsverlust, aber interlacing wird dabei nicht am TV sichtbar, nur haufenweise kloetzchen und mosquitos!
    desweiteren wird die Farbinformation von zwei halbbildern gemittelt, was dazu fuehrt, das die Farbe stottert (25fps), obwohl das Bild fluessig laeuft (50fps).

  • scharfis_brain

    Stimmt, zumindest bei den meisten Fernsehern. Bei 100Hz-Geräten sieht das aber zum Teil anders aus. Ich hab' das vor längerer Zeit mit meinem ausprobiert. Ein solches Bild brachte wohl den internen Deinterlacer völlig durcheinander.

    Na ja, so oder so, man sollte es jedenfalls nicht machen.

  • Nee, Fernseher arbeiten doch grundsätzlich mit interlaced Video, mit progressiven Frames können die schon per Definition nichts anfangen. Deshalb erzeugt ja jedes Geräte, das ein CRT-Gerät ansteuern kann grundsätzlich ein interlaced Signal.

    Na ja, und mein 100 Hz-Fernseher ist auch schon etwas älter, möglich, dass neuere Geräte sich da anders verhalten.

  • ich meine eine Markierung, die nur fuer 100Hz-TVs oder Projektoren / LCDs gedacht ist.

    und diese markierung sagt dem Wiedergabegeraet dann, ob beide halbbilder unterschiedliche bewegungszustaende beinhalten (interlaced) dann muss im TV/LCD/Proj deinterlaced werden oder ob das Video Progressive ist, dann muesste der 100Hz TV naemlich nur beide Halbbilder gleichzeitig darstellen (2:2 Pulldown), weswegen man eigentlich garkeine Progressive Leitung braucht...

  • Frage zu den 2 Folgenden Vorgehensweisen bei interlaced Material:

    1)
    #######################
    UnfoldFieldsVertical(true)
    Filter()
    FoldFieldsVertical(true)
    #######################

    2)
    #######################
    ViewFields()
    Filter()
    UnViewFields()
    #######################

    Hatte dies mal in einem anderen Forum aufgegriffen, und da ich bis jetzt immer mit der Interleave-Methode bei temporalen Filtern vorgegangen bin, wollte ich mal scharfis_brain fragen, wie's denn hiermit aussieht.

Jetzt mitmachen!

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