Farbunterschiede nach dem Rendern

  • Zuallererst einen schönen Guten Abend allerseits!

    Ich möchte versuchen mein Problem so gut wie möglich zu erläutern um die Möglichkeit zu geben mir schnell zu helfen (falls gewollt :) )

    Ich habe schon einige Foren infiltriert doch nirgends wurde mir wirklich geholfen. Ich habe auch schon mit LoRd_MuldeR darüber gesprochen im Avidemux2 Forum. Jedoch war dort die Frage und mein aktueller Wissensstand ein anderer.

    Ich habe mittels Photoshop CS4 jede menge Layer erstellt die ich dann in After Effects zu einer Animation zusammengestellt habe. Dies hab ich dann wiederrum über Aftereffects und das Kürzel STRG+M exportiert, dazu noch den Sound eingeschaltet und somit ein rohes .avi mit PCM Sound exportiert. Die Größe beträgt 1,4GB. Ich öffnete dann mein Avidemux/Ripbot264/Vdub doch jedesmal hat mich das gleiche Problem heimgesucht. Nachdem ich meinen Codec gewählt habe, die Audioline mal gemutet und loslegte mit rendern, musste ich nach dem Vorgang feststellen, dass die Farben matt geworden sind. Wenn ich allerdings eine .mov Datei aus Vegas oder eine .avi Datei aus AE rendere, sind die Farben top!

    Ich habe natürlich die Suchfunktion genutzt und bin über dieses Thema gestolpert: http://forum.gleitz.info/showthread.php?t=39667 Allerdings wurde ich daraus nicht schlau.

    Was ich bis jetzt getan habe:

    -Grafikkarten Treiber auf normalen Modus gesetzt (NvidiaGTX285)
    -Farbspektrum auf 0-255 gestellt
    -FFDSHOW forciert nur in 32Bit auszugeben

    Was ich seltsamerweise feststellen durfte hat mich wirklich sehr verwirrt:
    Wenn ich in die Nvidia Steuerung gehe und dort auf Nvidia-Settings stelle, kann ich dort die Farbwerte, Helligkeit usw. verstellen.

    Wenn ich nun meinen Komprimmierten Clip starte und an den Reglern spiele, stelle ich fest, das sich die Farbe verändert, ganz wie es sein soll.

    Starte ich jetzt aber meine Raw-.avi-Datei, passiert garnichts! Selber Player, selbe Settings jedoch hier passiert nichts wenn ich an den Reglern schiebe.
    Ich dachte schon es liegt vielleicht an den Grafikkarten Einstellungen, doch kam ich zu keinem Ergebnis welches ich auch rekonstruieren konnte.

    Ich poste hier nochmal 2 Bilder welche verdeutlichen welches Problem ich nun habe:

    Hier die Rohdatei:
    http://www.bilderhoster.net/safeforbilder/g242hmw4.png

    Hier die in Xvid gewandelte Datei:
    http://www.bilderhoster.net/safeforbilder/fj925jjl.png

    Hier noch alle relevanten PC Informationen die vielleicht von Hilfe sein könnten:

    OS: Windows7 trail 64bit
    Grafikkarte: Nividia Geforce GTX 285 EVGA SSC
    Grafikkarten Treiber Version:191.07

    Installierte Tools:

    AviSynth_090927
    ffdshow_rev3078_20090917_clsid
    Matroksa Media Splitter v1.9.42.1
    Ripbot v1.14.5
    Avidemux v2.4.4
    Virtual Dub (32Bit) v1.8.8

    Ich hoffe dies sind Infos genug, hoffentlich bekommen wir das in Griff!

    Meine ICQ Nummer, falls jemand Live mit mir sprechen mag lautet: 233646678

    Ich bedanke mich fürs durchlesen!

    Mit freundlichen Grüßen

    Pete-

    2 Mal editiert, zuletzt von Brother John (22. Oktober 2009 um 12:15) aus folgendem Grund: Bitte keine so riesigen Bilder direkt im ins Posting einbauen!

  • :welcome:

    Mir fallen dazu ein paar mögliche Ursachen ein:

    - Coring: Weil der Fernsehbildschirm (im Vergleich zum PC-Monitor) die Helligkeit und Farbigkeit eher verstärkt wiedergibt, wird sie gleich von vorn herein eher vermindert gespeichert. Nicht jeder Player zeigt das dann auch korrigiert am PC-Monitor.

    - Overlay: Die schnellste Art, Video auszugeben, ist das Hardware-Overlay (ein Speicherbereich der Grafikkarte, in den der PC nur hineinschreiben darf, und nur der Videosignalerzeuger lesen kann). Dieses Signal hat seine eigene Steuerung der Helligkeit, Farbigkeit und Sättigung. Das Overlay wird jedoch auch nur bei der Wiedergabe bestimmter Videoformate verwendet. Andere Videoformate verwenden kein Overlay, und werden statt dessen von der Desktop-Farbsteuerung beeinflusst.

    - Chroma Subsampling: Weil die Helligkeit viel detaillierter wahrgenommen wird als die Farbigkeit, werden Informationen über Farbton und Sättigung in stark komprimierenden Formaten mit geringerer Auflösung gespeichert (YUV Chroma Subsampling 4:2:0 = nur je eine Farbigkeit für 2x2 Pixel im Quadrat) als im Original (RGB 4:4:4 = jedes einzelne Pixel mit eigenen Werten). Ein-Pixel-dünne Linien sind also im Allgemeinen eine ganz schlechte Idee.

  • So subtil wie der Unterschied ist, weil v.a. die 1-px-Linien betroffen sind und die Art wie diese Linien einfach »matter« werden, deutet imo extrem stark auf den Farbraum hin.

    Das lässt sich auch nicht vermeiden, weil alle modernen Codecs praktisch ausschließlich mit YV12 (d.h. 4:2:0-Subsampling) arbeiten. Du kannst höchstens das Quellbild so gestalten, dass die geringere Farbauflösung möglichst wenig auffällt. Das ist imo schon der Fall. Ohne die beiden Bilder in verschiedenen Tabs zu öffnen und schnell hin und her zu schalten, ist der Unterschied nicht zu erkennen.

    Brother John
    ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
    DVD nach MPEG-4 klappt nicht? Verzweifelt? Auf zum Encodingwissen!

  • Besonders stark fällt es bei rot und blau auf; grün ist nicht so extrem betroffen, aber keine Ausnahme - jeder Wechsel von Farbton oder Sättigung am Rand von überwiegend satten Farben wird stärker davon beeinflusst als nur Helligkeitsänderungen bei eher gleichbleibender Farbigkeit (was so ja auch in der Natur häufiger passiert).

  • Okay, vielen Dank für eure kompetente Hilfe. Dies bedeutet also, egal welche Kbits Zahl ich nehme, ich werde niemals auf das ergebnis einer Rawfile kommen können? Hinzu kommt, wenn ich diesen Clip auch noch mit 7000Kbits (als Beispiel) straight rendern will, wird mir trotzdem eine relativ fragmentierte Datei ausgespuckt, die maximal 3-4 MBs hat. Normalerweise sollte ich es doch fragmentfrei hinbekommen können? Wenn ich mit x246 kodiere, dann sieht das Bild nicht so sehr fragmentiert aus. Nunja, eigentlich soll das Video eine Vorlage für Flash sein, dort sollen dann auch noch Buttons mittels Flash eingebaut werden, doch weichen eben diese Linien stark von der Farbe meiner Website ab. Wie wird sowas denn professionell gehandhabt? Wenn man z.B. einen Kunden hat und der sich solch ein Design wünscht, man es aber aufgrund der Codecs nicht realisieren kann? Habt ihr mir Anregungen oder gar Tipps, wie man zu diesem Ergebnis trotzdem kommen könnte? Hab auch eine "huffyuv64" und ".mov Animation Codec"-Datei gerendert, natürlich viel größer, etwa 360 MBS, aber dort sind die Farben so wie sie sein sollen. Ich merke, das dies oft passiert mit den Farbveränderungen... Auch wenn ich einige andere Clips proberender, vermerke ich eine Verfälschung der Farben! Dies war davor aber nicht so! Ich hab Dateien früher gerendert, da waren die Farben perfekt! Wenn ich die selbe datei nochmal render, sind deutliche Farbunterschiede zu erkennen. Das kann doch nicht sein.... Zumal das auch flächendeckend passiert...

    Mit freundlichen Grüßen

    Pete-

  • Fragmente? ... Artefakte, wohl?

    Professionell werden Flash-Seiten wohl eher so aufgebaut, dass Farbverläufe zum Teil mathematisch oder per Alphamaske generiert, Texte als Kurven bzw. Vektor-Objekte eingefügt und Linien gezeichnet werden. Ohne Video. Mit geskripteten Animationen und sensitiven Bereichen, die ihre Aktivierungseffekte in Echtzeit anwenden.

    Gerade sanfte Farbverläufe sind eine Sache, bei der MPEG-verwandte Videocodecs so ihre Schwächen zeigen.

  • Huj, das ist mir neu!

    Ich muss mich nochmal korrigieren, ich hab jetzt tatsächlich nochmal paar Test gemacht und etwas festgestellt, das dem was ihr sagt schon nahe kommt. Ich habe Video in Avidemux gehauen und jenes dann abfotografiert und verglichen. Tatsächlich sind die Farben nach wie vordem Rendern gleich. Lediglich die Farben in der Avidemux Vorschau stimmen so garnicht überein, was mir ja auch egal sein kann, so lange das Ergebnis passt. Ich hab auch aus dieser kleinen Linie nun ein großes Rechteck gemacht und festgestellt, das die Farben gleich bleiben und eure Theorie definitiv korrekt ist.

    Hier die Test:

    Rawfile:
    http://www.bilderhoster.net/safeforbilder/625y8zw8.png

    Xvid:
    http://www.bilderhoster.net/safeforbilder/82bbsggc.png

    X264:
    http://www.bilderhoster.net/safeforbilder/8gmxdn1z.png

    Ich dachte man könne auch Animationen mittels AfterEffects bauen und die dann als .Avi in Flash importieren. Gibts mittels AE und Flash dennoch eine Möglichkeit mein Unterfangen mit sauberen Linien zu bekommen? Oder muss ich sie dann wohl oder übel dicker machen? :)

    Endlich mal ein Forum wo man sich an die aussagen halten kann, habe davor garnicht gewusst das Codecs bei bestimmten dingen solch eine Sauerei anstellen, auch wenn es in ihrer Natur ist. Bedeutet, das meine Ganzen Codecs und Tools perfekt funktionieren!

    Mit freundlichen Grüßen

    Pete-

    2 Mal editiert, zuletzt von LigH (22. Oktober 2009 um 14:16)

  • Noch mal, wie schon ^ oben von Brother John korrigiert:

    Riesengroße Bilder bitte nur als URL einfügen, nicht als Inline-Bild.
    __

    Wie schon gesagt, ist "Flash" im Grunde ein Vektor-Animations-System.

    "Flash Video" hat damit nicht viel zu tun.

    Vektor-Animationen, die mit Flash und Action Script programmiert werden, brauchen häufig nur wenige hundert KB (meist wegen eingebundener Grafiken, alles andere sind Zeichenbefehle und Effekte).

    Flash-Video in den Dimensionen, die du hier vorbereitest, müssten mit VP6 oder MPEG4-AVC komprimiert werden, und würden trotzdem mehrere ('zig) Megabytes groß werden, obwohl die Qualität schlecht wird. Wer, der kein DSL hat, würde sich diese Seite freiwillig anschauen wollen? (Und davon gibt es auf dem Lande noch jede Menge, und wir haben schon fast 2010.)

  • Das mit dem Bilderd tut mir leid, hab einen 24" Screen, da sieht alles schön übersichtlich aus. :)

    Ich verstehe nun auch wieso das ganze funktioniert, natürlich müsste ich dann auf anderen Mittel zurückgreifen. Gut zu wissen, das ich im Grunde nichts falsch gemacht habe und das man damit leider so nicht arbeiten kann, wie ich mir das ganze vorgestellt habe. Ich werde wohl die Linien dicker machen und das Projekt so auch beenden.

    Noch eine kleine Frage für zwischendurch:

    Wie quäle ich meinen Rechner am meisten, sprich wie erbringe ich das Beste ergebnis beim Rendern? Ich habe dafür einmal Avidemux genommen, ein 2Pass Projekt mit 5000Kbits Bitrate genommen und dann zu Motion geswitch, also dem Reiter.

    Dort habe ich schonmal etwas über abtastintensität gelesen, das desto mehr der Rechner sucht (einfach ausgedrückt) desto besser das Ergebnis anhand der Kompresse im Nachinein.

    Wäre es dafür sinnvoller bei Partition Decision dort die 9 auszuwählen oder hat dies damit garnichts zutun? Wär ein Hex oder ein Diamond seach besser? Auch mit den Trellis hatte das noch etwas aufsich kann ich mich erinnern. Kann man anhand dessen dem Rechner mehr Arbeit auferlegen oder wie funktioniert das ganze?

    Nichtsdestotrotz bedanke ich mich nochmals für die Auskünfte, bin jetzt eine ganze Ecke gescheiter, will ich zumindest hoffen. :)

    Mit freundlichen Grüßen

    Pete-

  • Nun ja - man kann für 0,5% kleinere Dateien 50% mehr Rechenzeit investieren.

    Muss man aber nicht. Wir wollen doch der Umwelt zuliebe Energie sparen... ;)

    Und vor allem sollte man bedenken, dass die mit größtem Aufwand komprimierten AVC-Videos leider auch mit größerem Aufwand abgespielt werden müssen. Und manchmal ist der Aufwand größer, als es z.B. ein Blu-ray- oder sonstiger AVC-Player unterstützt.

    Es ist schon etwas länger her, und ich schätze mal, es wurde noch nicht auf den neuesten Stand aktualisiert ... aber "Wissenswertes rund um x264" (Download im FlaskMPEG-Forum) ist immer noch eine nützliche Übersicht über die Optionen und ihre Auswirkungen als Gewinn und Kosten.

    Meine Empfehlung: Nimm einen sinnvollen Kompromiss zwischen Aufwand und Nutzen. Wesentlich besser als z.B. DivX 5/6 ist x264 allemal. Und alle Rechenkerne zu 100% auslasten ist technisch ohnehin fast unmöglich.

  • Da mir nicht so ganz klar ist was Du durchlesen willst würde ich spontan empfehlen:
    1. den Standard und generelle Leküre (z.B. bei: http://neuron2.net/library/avc/)
    2. Erläuterungen zu Tools und direkt zum Encoder: MeGui Wiki, MeGui Essentials, Brother Johns Encodingwissen, Avidemux Anleitung, man x264,....
    3. einfach mal hier und im englischen Doom9 die Suche bemühen.

    Bei H.264 ist es so das die meiste Performance beim Decodieren für CABAC (je mehr je höher die Datenrate ist) gewichtete B-Frames und das Deblocking drauf gehen, da man auf diese aber nicht verzichten sollte, da sie für einen Großteil der Effizienz von H.264 verantwortlich sind würde ich empfehlen von ihnen die Finger zu lassen. (Ansonsten kann man sie mit '--tune fastdecode' auch deaktivieren.)

    Wichtig ist vor allem, worum es LigH vermutlich eher ging zu wissen welches Profile&Level vom Wiedergabegerät unterstützt wird. Profile&Level bestimmen welche Features, Datenrate usw. zulässig sind, etwas pauschalisiert kann man sagen, dass je höher Profile&Level sind desto mehr CPU Power wird man brauchen beim Decodieren.

    Heutzutage macht es meiner Ansicht nach aber nur noch Sinn auch Decoding Performance zu optimieren, wenn man für eine bestimmte Hardware encoded, welche nur Material dekodieren kann was bestimmte Vorraussetzungen erwartet,.. siehe z.B. hier und den dazugehörigen thread im englischen Forum.

    Generell würde ich im Umgang mit x264 die oben genannten Quellen mal zu überfliegen um ein generelles Grundverständnis zu haben was die einzelnen Optionen machen und dann erst mal auf die presets&tune Einstellungen von x264 betrachten, überlegen warum dort was eingestellt wird und anschließend den Aufruf nach eigenen wünschen anpassen.

    Cu Selur

    Ps.:

    Zitat

    -Farbspektrum auf 0-255 gestellt
    -FFDSHOW forciert nur in 32Bit auszugeben

    vielleicht ganz interessant: http://forum.doom9.org/showthread.php?t=143598

  • @ Selur:

    Was er durchlesen will? -- "Wissenswertes rund um x264"! :D

    Und ja ... eine aufwändigere Suche nach Bewegungen ist kein Problem für die Decoder (außer wenn die Profile@Level Beschränkungen in der maximalen Entfernung setzen). Da die meisten Bewegungen horizontal stattfinden, ist eine hexagonale Suche vorzuziehen, "umh" sollte aber meist als Strategie mit sinnvoll hohem Aufwand genügen ("esa" wäre für die meisten Fälle schon Zeitverschwendung).

    Auch bei der SubME gibt es heute eine Reihe von Möglichkeiten (aktuell 0-10), wie aufwändig die Bestimmung stattfinden soll. Hier gibt es aber auch Abhängigkeiten zu anderen Optionen, die ihrerseits ebenfalls die Rechenzeit beeinflussen (z.B. Trellis-Quantisierungssuche, Adaptive Quantisierung). So kann sich durchaus ein erheblicher zusätzlicher Rechenaufwand aufsummieren, der letztlich nur geringe Vorteile gegenüber einer zwei Stufen niedrigeren Einstellung bietet - je nach Optionen-Menge im Vergleich...


    @ Pete-:

    :google: bringt den Beitrag mit dem Anhang zum Download als ersten Treffer.

    Siehe auch Forenregel 2.1.

Jetzt mitmachen!

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