Farbraum beibehalten (Avisynth, DGMPGDec, PC/TV scale)

  • Ich muss den Decimate Filter auf eine MPEG-2 anwenden um jedes 25ste Doppelframe zu entfernen, soweit kein Thema, nur wie kann ich erzwingen dass der Originale Farbraum beibehalten wird? Momentan werden die Werte von 16-235 auf 0-255 gestreckt:

    LoadPlugin("C:\avisynth 2.57\plugins\dgdecode.dll")
    LoadPlugin("C:\avisynth 2.57\plugins\decomb.dll")
    mpeg2source("d:\coweb\hauptfilm.d2v")
    Decimate (25)


    In DGindex habe ich TV scale eingestellt, dort wird es auch korrekt angezeigt, ich weiß nicht wo der Fehler liegt.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Hochschieb...

    Script geändert in-

    LoadPlugin("c:\avisynth 2.57\plugins\dgdecode.dll")
    LoadPlugin("c:\avisynth 2.57\plugins\decomb.dll")


    Mpeg2Source("C:\Magazin-2\Pal.d2v")
    converttoYV12
    Decimate (25)

    levels(0, 1.05, 255, 0, 235, Coring=false)

    Wird nur geringfügig besser.

    Ich stehe auf dem Schlauch......mit einem Ruck wäre der Schlauch wieder frei

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Kann dir da leider nicht wirklich helfen. Insbesondere weil ich mir nicht sicher bin, ob eventuell wirklich MPEG2-Video mit PC-Scale hier und da veröffentlicht wurde. Muss also eventuell nicht unbedingt ein Fehler des Decoders sein, sondern diesmal vielleicht des Materials?

    Beobachte mal bei der Vorschau in DGIndex.exe das Statusfenster. Vielleicht hat das ja auch was zu tun mit ITU-R BT.601 / BT.709?

    Statt Levels vielleicht eher ColorYUV(levels="PC->TV").

    Auf gute Zusammenarbeit:

    REGELN befolgen | SUCHE benutzen | FAQ lesen | STICKIES beachten

    Einmal editiert, zuletzt von LigH (31. März 2010 um 13:06)

  • Ich meine in diesem Fall mit dem Hinweis auf ITU-R BT nicht die Seitenverhältnisse, sondern die Farbräume. Allerdings habe ich mich da in der Bezeichnung vertan:

    Was über das Plugin "ColorMatrix" (von wilbert) dokumentiert ist, beschäftigt sich mit der "Colorimetry", und da gibt es zwischen ITU-R BT.601 und ITU-R BT.709 (nicht 703, sorry) Unterschiede in den Parametern für die Umrechnung zwischen YUV und RGB.

    ColorMatrix(clip, mode="Rec.601->Rec.709")

    DGMPGDec und ColorMatrix arbeiten auch zusammen, um das zu automatisieren:

    MPEG2Source("*.d2v", info=3) # for dgdecode v1.20 or newer
    ColorMatrix(hints=true, interlaced=true)

  • Zitat

    Ich meine in diesem Fall mit dem Hinweis auf ITU-R BT nicht die Seitenverhältnisse,


    habs schon richtig verstanden,weiss aber dass da der Karl auch etwas genauer über ITU-R BT.601.4 geschrieben hatte,auf Seite 4.

    Zitat

    zwischen ITU-R BT.601 und ITU-R BT.709 (nicht 703,


    Ja,den Color Correction Filter 601 to 709 sehe ich hier jeden Tag im Procoder.
    703.....kenne da nur ITU-T G.703 hat ja nur was mit der Telekommuniations Branche zu tun.

    Etwas besser wirds wenn ich in DGindex...Video..Luminance bei offset etwas im + Bereich verändere.

    DGindex bietet im Programm selber ja schon die Option RGB oder YUV einzustellen... das muss doch irgendwie an AVIsynth durchreichbar sein dass das im originalen Farbraum weiterarbeitet ohne den Bereich auf RGB zu strecken. Mit einer unkomprimierten YUV-AVI kommt es auch zu dieser Dehnung wenn ich die durch AVIsynth jage.

    Es gibt ja vermutlich auch keine andere Lösung ein gedoppeltes Frame alle 25 Frames zu entfernen außer AVIsynth?

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Am Ende liegt's dann vielleicht an dem VfW-Codec, der die Konvertierung von YV12 zu RGB vornimmt, damit VirtualDub die Vorschau anzeigen kann?!

    AviSynth selbst sollte standardmäßig eigentlich das Coring beachten. Deshalb muss man ja auch bei vielen Funktionen das Coring explizit ausschalten, wenn man PC-Scale als Ergebnis haben will.

  • Da sollte eigentlich gar keine Wandlung statt finden. Die Einstellung "TV/PC Scale" in DGIndex betrifft eigentlich nur die Vorschau, und das veraltete VFAPI. Bei der Decodierung über mpeg2source wird dise Einstellung m.W. völlig ignoriert, da wird alles 1:1 geliefert.

    Wie sieht's aus mit

    Mpeg2Source("C:\Magazin-2\Pal.d2v")
    histogram(mode="levels")

    bzw.

    Mpeg2Source("C:\Magazin-2\Pal.d2v")
    ColorYuv(analyze=true)


    Vielleicht bist Du irgendwie einer YUY<->RGB Wandlung auf den Leim gegangen ... z.B. in Vdub oder was-auch-immer. Weil, zur Anzeige am Schirm wird ja auf jeden Fall nach RGB gewandelt, und im Normalfall geht das ja YUV_16-235 ==> RGB_0-255 ...


    Edit:
    Hmmh. Nochmal in Ruhe gelesen, habe ich jetzt eigentlich genau das gleiche gesagt wie LigH gerade zuvor. Rrrrr.

  • Mach mal ein kurzes Testencoding ins Endformat und schau Dir das an.
    Evtl hast Du nur ein Darstellungsproblem (wie ich letztens) und beim Ergebnis ist alles wieder prima...

    Gruß Karl

  • Ich habe mich da jetzt noch mal dran gesetzt und auch mal mit ColorYUV eine Analyse gemacht um einen Anzeigefehler auszuschließen, auch dort wird mir gezeigt dass das Material auf 0-255 gewandelt wurde.

    Im Prinzip kann man sich ja auch ein Testbild in eine MPEG-2 rendern, diese mit DGindex laden, durch AVIsynth jagen und am Ende im Schnittprogramm kontrollieren (Waveform) ob sich da was am Farbraum geändert hat.

    Statt:
    (levels(0, 1.05, 255, 0, 235, Coring=false))

    Kommt aber das Folgende ganz nahe ans Original ran.


    Levels(0, 1, 255, 16, 235, coring=false)

    Statt 1.05 beim ersten Test diesmal mit Parameter 1
    ColorYUV(levels="PC->TV")

    Es ist zwar nicht 100% mit der Quelle identisch, aber nah genug dass ich es verwenden kann.

    Trotzdem bleibt die Frage ob es nicht doch möglich ist mit AVIsynth nativ den 16-235 Farbraum der MPEG-2 beizubehalten.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Hmm ... Didée meint, es wird in der DGDecode.dll ignoriert, ob in der DGIndex.exe im Menü "Video | YUV -> RGB" der Haken bei "PC scale" statt "TV scale" stand, als du die Indexdatei erzeugt hast?

    Das wäre ja wohl ein Bug, der mit Donald Graft zu diskutieren wäre, oder?...
    __

    Obwohl - Konvertierung zu RGB willst du ja gar nicht.

    ...

    Gegenfrage: Vielleicht arbeitet DGMPGDec korrekt, das von dir betrachtete Material hat PC-Scale, und es kommt nur auf den Encoder an, dass der immer von TV-Scale ausgeht?

    Also: Wodurch hast du für dich nachgewiesen, dass dein Material eigentlich mit TV-Scale encodiert wurde, aber nur DGMPGDec PC-Scale ausgibt?

    Hast du mal einen Schnipsel (auch für D.G. zur Analyse)?

    Auf gute Zusammenarbeit:

    REGELN befolgen | SUCHE benutzen | FAQ lesen | STICKIES beachten

    2 Mal editiert, zuletzt von LigH (14. April 2010 um 08:10)

  • Da habe ich ja was "losgetreten" :hm:

    Das Material hat definitiv TV Scale ist alles messtechnisch (Waveform in Sony Vegas und extern) erfasst.

    Ich habe mal ein Testbild im TV Scale rausgelassen und per ProCoder encoded, Ergebnis ist eine 1:1 Reproduktion des Farbraums wie gewünscht. Wenn man beide Files in Vegas zieht und auf dem Waveform schaut kann man das sehen. Wenn ich nun diese "korrekte" MPEG-2 mit DGindex lade, und in das Script einsetze, und nochmal per ProCoder encode, wird der Farbraum aufgespreizt (und das nichtmal sauber nach 0-255 im Vergleich zum 16-235 -> 0-255 Umrechnungspreset in der Farbkorrektur von Vegas).

  • Goldwing, irgendwas läuft bei Dir verkehrt ....

    Code
    vid = mpeg2source("D:\!temp\color_bars.d2v")
    
    
    v1 = vid.histogram(mode="levels")
    
    
    v2 = vid.coloryuv(analyze=true)
    
    
    stackhorizontal(v2,v1.crop(v2.width,0,0))

    "Mein Ergebnis" :

    [Blockierte Grafik: http://thumbnails23.imagebam.com/7643/bddb7b76423689.gif]
    http://www.imagebam.com/image/bddb7b76423689

    Man sieht, es findet *keine* Farbraumspreizung durch Avisynth und/oder DGDecode statt.

  • Es geht darin anscheinend darum, dass beim Beliefern mit YV12 wohl im DirectShow-System eine Spreizung stattfindet. Mit YUY2 wäre das eventuell nicht passiert.

    Zumindest klingt das so in der letzten Antwort von 45tripp.

  • Zitat

    Mit YUY2 wäre das eventuell nicht passiert.
    Zumindest klingt das so in der letzten Antwort von 45tripp.

    Ja,so hab ichs auch mit meinem etwas gar schlechten Englisch verstanden.
    Habs aber erst nach meinem neuen Versuch,aber auf einem anderen Rechner,gelesen.

    Installiert ist da:
    Avisynth 2.57
    Edius 4.61 und Procoder 2
    DGIndex 1.5.8.....und ja,die passende "dll" ist im Pluginsordner von Avisynth.

    Hier werden beide im einem der obigen Beiträge verknüpften "Color-bars" korrekt in 16-235 angezeigt.

    Als Erklärung...auch zu den 2 nächsten Screens.....der "Farbwert" wird mir angezeigt,exakt da wo die Mausspitze verweilt.

    Nun also irgendein File ab einer DVD auf die HDD eingelesen und dann
    mit DGIndex einen Testausschnitt da rausgenommen.
    [TV Scale]

    Script.
    LoadPlugin("C:\avisynth 2.57\plugins\dgdecode.dll")
    LoadPlugin("C:\avisynth 2.57\plugins\decomb.dll")
    mpeg2source("C:\Magazin-1\\VTS_01_3.d2v")
    Decimate (25)

    Abgearbeitet mit dem Procoder 2.

    Hier mal 2 Screens....man beachte den Helligkeitssprung gezeigt im Bild 1 zum nächsten Frame,Bild 2. [00.00.26.09 bis xx.xx.xx.10] wie auch welcher Farbwert da angegeben wird.

    http://www.ww-consulting.ch/DL/1.jpg

    http://www.ww-consulting.ch/DL/2.jpg

    und hier den mit Womble etwas gekürzten Stream.
    http://www.ww-consulting.ch/DL/Ausschnitt.zip

    Screen von DGIndex.
    http://img576.imageshack.us/img576/1897/colorimetry.jpg

    Dass Frame 1 "überstrahlt" ist merkt ein normaler Zuseher nicht,ist ja nur ein Frame "lang" also 40 MS.
    Beim Cutten fällt dies aber auf.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Olsenbande - ist ja süß! :ani_lol:

    Dabei habe ich extra den Tonanteil rausgenommen und einen unverfänglichen Ausschnitt gewählt.
    Da muss aber jemand ganz gut aufgepasst haben.:ani_lol:

    Ergänzung zu meinem obigen Posting.
    Installiert ist YV12 [Divx.dll] 6.8.5.15

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Einer von mehreren möglichen Codecs wird die Konvertierung vom planaren YV12 zu einem gepackten Pixelformat übernehmen - in Frage kommen bei vielen: DivX, Xvid, Codecs von Capturing- oder Videoeditor-Software, oder ffdshow (wenn dort in der VfW-Konfiguration die Verarbeitung von Raw-Formaten aktiviert wurde). Wann und zu welchem Zweck diese stattfindet, ist unterschiedlich; Canopus ProCoder und Sony Vegas werden wohl "intern YUY2 bevorzugen", auch wenn sie YV12 erst mal akzeptieren. Deshalb könnte es hilfreich sein, die Konvertierung zu YUY2 bereits in AviSynth auszuführen, oder gar MPEG2Source gleich mit upConv-Parameter zu verwenden.

Jetzt mitmachen!

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