Unterschied von echtem Grain zu "künstlichem" ?

  • wenn ich einen Film mit "normalem" Grain mit "tune grain" settings encode, wird das Korn relativ abbildungtreu reproduziert, auch bei relativ niedrigen Bitraten.
    Es ist immer wieder aufs Neue erfreulich welche Fortschritte die x264 Entwickler ihrem Kind verpasst haben. Ich staune immer noch :D
    Wenn ich nun aber einem "aalglatten" Video ohne Grain diesen künstlich hinzufügen möchte, wie mit dem "AddGrain"-Filter, dann sieht das hinterher irgendwie nicht nach echtem Grain aus, obwohl ich die Bitrate in dem Fall mehr als doppelt so hoch schrauben muss damit es überhaupt irgendwie korn-ähnlich nach Film aussieht... Dabei wird mit einem ziemlich hohen Wert von 30 eigentlich schon zuviel an Rauschen generiert, was aber sein muss weil x264 diesen künstlichen Grain irgendwie nicht so recht annehmen will. Trotz der doppelten Bitrate sieht das Resultat irgendwie nicht befriedigend aus...Was unterscheidet also echten von falschem Grain ? [Blockierte Grafik: http://www.greensmilies.com/smile/smiley_emoticons_nixweiss.gif] Kennt sich da jemand aus ?

  • :grübeln:

    Tja, es gibt viele mögliche Gründe für Rauschen oder Gries.

    Der "einfachste" Fall ist "weißes Rauschen" (wenn man den Begriff mal vom Audio- in den Video-Breich überträgt). Hierbei hat jedes einzelne Pixel eine eigene zufällige Abweichung, unabhängig von spatialen (flächigen) oder temporalen (zeitlichen) Nachbarpixeln. Auch "pinkes Rauschen" wäre optisch vorstellbar, das fiele aber von der Wirkung her schon beinahe in die nächste Kategorie...

    Dann wäre da außerdem ein "spatialer Gries", der bei hochskaliertem Material geringerer Originalauflösung oder bei fein abgetastetem groben Filmmaterial auftritt (echtes Filmkorn) - hier gibt es weichere Muster, in denen die Abweichungen sich über mehrere flächig benachbarte Pixel erstrecken, aber über zeitlich aufeinander folgenden Bildern keine Beziehung zwischen Pixeln der gleichen Koordinaten besteht.

    Und dann gibt es noch "temporalen Gries", wie er typischerweise bei Formatkonvertierungen auftreten kann, in denen Zwischenbilder mit Interpolationen oder Überblendungen berechnet worden sind, oder ein eher träger Sensorchip in der Kamera für "schleichend ineinander übergehende" Rauschmuster sorgt (typischer Überwachungskamera-Gries-Effekt wie bei "Akte X").

    Welcher ist jetzt "richtig" und welcher "falsch"?!

    Grain-Generatoren werden dir sicher Parameter zur Verfügung stellen, um festlegen zu können, wie viel Mittelwertbildung spatial und wie viel temporal verwendet werden soll. Außerdem wird es bei Gries auch nicht unwichtig sein, ob er nur auf die Helligkeit oder auch auf die Farbigkeit wirken soll (wobei letztere ja geringere Auflösung, also dadurch schon spatial weichere Auswirkung hat).

  • ...um festlegen zu können, wie viel Mittelwertbildung spatial und wie viel temporal verwendet werden soll.

    Danke für Antwort.

    interessant. spatial, temporal... is das das, was hier im Filter "HorizCorr, VerticalCorr" heisst ?


    Grain-Generatoren werden dir sicher Parameter zur Verfügung stellen,

    Kennst du noch andere Generatoren ?

  • HorizCorr und VerticalCorr sind beides spatiale Weichzeichnung (waagerecht und senkrecht). Temporale Korrelationen hat AddGrain also anscheinend nicht.

    FoxyShadis hat noch eine Variante als "AddGrainC" veröffentlicht (siehe WarpEnterprises' Plugin-Sammlung).

    Ein weiterer Rauscherzeuger wäre BlockBuster (basiert auf der Idee, dass überhaupt vorhandenes Rauschen zu weniger Blockartefakten führen kann, weil der Codec dann den Detailgehalt nicht mehr unterbewertet; das war noch nützlich, bevor XviD den Cartoon-Modus bekam).

    In der "BergFilterCollection" gibt es "MPlayerNoise" (nur die DLL aus dem Verzeichnis "Release" entpacken reicht), außerdem gibt es "GrainTools" und "NoiseGenerator".

    Keiner davon scheint temporal zu arbeiten, das müsste man wohl mit einem TemporalSmoother / TemporalSoftener o.ä. simulieren.

  • :grübeln:

    Welcher ist jetzt "richtig" und welcher "falsch"?!

    in meinem Fall wäre die Simulation "echten" Grains richtig...
    Wenn ich dich richtig verstanden habe, gehst du davon aus, nur temporal arbeitende Gens kommen dem am nächsten ?

    Hier habe ich noch was gefunden, was vielleicht das beste Ergebnis bringen könnte:
    http://compression.ru/video/grain_degrain/index_en.html

    jedoch gibts von dem Ding nichts zum testen, und auf Anfragen zum Erwerb kommt keine Antwort... vielleicht nur für professionelle Abnehmer gedacht...

    Was mich wundert, in der Vorschau sieht AddGrain schon ziemlich gut aus wenn man nur wenig daran schraubt... Aber x264 scheint das nicht zu ""erkennen" und unterschlägt den Effekt... übrig bleibt nur ein nervig "unruhiges" Bild... wenn ich den Effekt verstärke, wird das Rauschen zwar sichtbar(er), aber das Bild wird noch viel unruhiger, so dass man das Ergebnis eigentlich nicht verwerten kann...
    vielleicht kann man bei den x264 settings noch was tunen, so dass es "empfindlicher" auf dieses künstliche Rauschen reagiert, so dass man den Effekt nicht so sehr aufdrehen muss ?

  • Was dem Codec Schwierigkeiten macht, ist vor allem, dass das von AddGrain() erzeugte Korn viel zu hochfrequent ist. Im Prinzip lässt sich das zwar mit den correlation-Parametern beeinflussen, aaaber ... irgendwie kommt da nie so richtig das 'raus, was man gerne gehabt hätte. Steckt vermutlich eine sehr "schnelle" Formel dahinter ...

    Wenn man das "zu Fuß" beeinflusst, dann wird das Grain irgendwie "schöner".

    Code
    source = last
    gstr   = 20  #  strength of grain
    grain  = source.reduceby2().mt_lut("128").AddGrainC(gstr)
     \       .bicubicresize(source.width,source.height,-0.5,0.5)
    
    
    source.mt_adddiff(grain,U=2,V=2)


    ^Das ist die Bonsai-Variante der GrainFactory.

  • oh das wird ja richtige Detektivarbeit hier :D vielen Dank Didee für deinen Geheimtipp ;)
    Ich verstehe deine "Verschönerung" als simplen Zusatz im script, demzufolge habe ich script-nully es einfach unten drangehängt...

    Zitat

    DirectShowSource("Q:\releases\DRAMA\K.D.F\K.D.F.mkv", fps=25.000, audio=false)
    LoadPlugin("Q:\releases\DRAMA\K.D.F\dg avc dec 108\AddGrain v1.0\AddGrain.dll")
    AddGrain(20,0,0)

    source = last
    gstr = 20 # strength of grain
    grain = source.reduceby2().mt_lut("128").AddGrainC(gstr)
    \ .bicubicresize(source.width,source.height,-0.5,0.5)

    source.mt_adddiff(grain,U=2,V=2)

    leider kommt diese Meldung, wenn ich versuche die .avs in VdubMod zu laden

    Zitat

    Avisynth open failure:
    Script error:there is no function named "mt_lut"
    (Q:\releases\DRAMA\K.D.F\dg avc dec 108\beispiel.avs, line 8)

    Da ich den Unterschied zwischen AddGrain und AddGrainC nicht raffe, habe ich beide scripte um deinen Zusatz verlängert

    Zitat

    DirectShowSource("Q:\releases\DRAMA\K.D.F\K.D.F.mkv", fps=25.000, audio=false)
    LoadPlugin("Q:\releases\DRAMA\K.D.F\dg avc dec 108\addgrainc_25_dll_20060610\AddGrainC.dll")
    AddGrainC ( 0.5, 0.5, 0, 0, 0 )

    source = last
    gstr = 20 # strength of grain
    grain = source.reduceby2().mt_lut("128").AddGrainC(gstr)
    \ .bicubicresize(source.width,source.height,-0.5,0.5)

    source.mt_adddiff(grain,U=2,V=2)

    aber auch hier mit dem selben Fehler...:nein: was mach ich falsch ?

  • Hallo bigotti, danke für den Hinweis :ja:

    habe MaskTools.dll aufgerufen,


    aber an der Fehlermeldung ändert sich leider nichts....

    Es wäre sehr zuvorkommend und ich wäre sehr glücklich, wenn mal einer von den Profis hier etwas ausführlicher meine Lage berücksichtigen könnte...
    also nicht nur "lade dies" oder "hier ein paar scriptzeilen", sondern auch möglichst genaue Anweisungen wie das genau aussehen soll...
    Das würde viel hin und her hier ersparen, bedenkt bitte, dass ich NULL Ahnung habe...

  • "masktools.dll" ist die alte v1.x Version.

    "mt_masktools.dll" ist die neue v2.x Version.

    Aktuell ist v2.0a36.

    Und aus dem Paket bitte die "mt_masktools-25.dll" verwenden (für Avisynth 2.5.x). NICHT die -26.dll, die ist für Avisynth 2.6.


    Sorry wenn ich recht kurz angebunden bin. Aus Zeitgründen sollte ich hier eigentlich GAR NICHTS schreiben (hab' mehr als genug anderes zu tun). Wenn Dir das lieber ist: kein Problem!

  • Nur zur Anmerkung:
    "tune grain" hat nichts mit dem 'Film grain modeling'-feature von AVC zu tun. (Kenne aber aktuell auch keinen Encoder oder Decoder der dieses Feature unterstützt.)
    -> die Unterscheidung zwischen "echtem" zu "künstlichem" Grain ist also unnötig, interessanter wäre in diesem Fall wie muss der Grain aussehen, damit x264 ihn mit "tune grain" gut erhalten kann. :)
    Hier auch mal aus dem MeGui-Wiki was "tune grain" macht:

    Zitat

    Optimize for grainy content: deblock -2:-2, psy-rd 1:0.25, no-dct-decimate, ipratio 1.1, pbratio 1.1, aq-strength 0.5, deadzone-intra 6, deadzone-inter 6, qcomp 0.8

    Cu Selur

  • Aktuell ist v2.0a36.

    Und aus dem Paket bitte die "mt_masktools-25.dll" verwenden (für Avisynth 2.5.x). NICHT die -26.dll, die ist für Avisynth 2.6.

    wenn bigotti mir diese Zusatzinfos nicht mitgibt, hätte ich das auch nicht wissen können. Vielen Dank dafür, jetzt gehts :)

    Sorry wenn ich recht kurz angebunden bin. Aus Zeitgründen sollte ich hier eigentlich GAR NICHTS schreiben (hab' mehr als genug anderes zu tun). Wenn Dir das lieber ist: kein Problem!

    Hier bin ich mir jetzt nicht sicher wie ich das interpretieren kann/soll... Da ich von meiner Natur her eigentlich pessimistisch bin drängt sich die unangenehmere Variante auf...
    ich verstehe zwar nicht für welche, aber ich entschuldige mich jetzt schon für eventuelle vergangene und zukünftige Fettnäpfchen vielmals...
    Falls auch dieser Satz jetzt problematisch gewesen sein sollte, entschuldige ich mich auch dafür :D lol

    EDIT

    habe jetzt den ersten Testlauf mit dem Bonsai durch.

    ich schätze interessante Entwickungen und würdige diese auch mit Spenden an die Autoren.
    Wenn du damit einverstanden bist, schicke mir deine Verbindungsdaten.
    Es wäre ein Jammer wenn die begnadeten Köpfe aus Zeitmangel verstummen würden.
    Ich hätte da nämlich noch ein paar Fragen zu deiner GrainFactory...

    Einmal editiert, zuletzt von lil barny (29. November 2009 um 10:02)

  • Wenn Du Fragen hast, dann stell' sie doch einfach. Das ist die beste Strategie, um Antworten zu kriegen.;)

    Öffentliche Fragen sind bevorzugt, da haben andere Benutzer gegebenenfalls auch etwas davon. Technische Unterstützung via PM gebe ich im allgemeinen eher ungerne.

  • good, letz go...

    Code
    DirectShowSource("Q:\releases\DRAMA\K.D.F\K.D.F.mkv", fps=25.000, audio=false)LoadPlugin("Q:\releases\DRAMA\K.D.F\dg avc dec 108\masktools-v2.0a36\mt_masktools-25.dll")LoadPlugin("Q:\releases\DRAMA\K.D.F\dg avc dec 108\addgrainc_25_dll_20060610\AddGrainC.dll")Grainfactory3(5,7,10)function GrainFactory3(clip clp,int "g1str",int "g2str",int "g3str",int "g1shrp",int "g2shrp",int "g3shrp", \                        float "g1size", float "g2size", float "g3size", \                        int "g1tex", int "g2tex", int "g3tex", int "temp_avg", int "ontop_grain", \                        int "th1", int "th2", int "th3", int "th4"){g1str       = default( g1str,        13 )  # [ 0 - ???] strength of grain / for dark areasg2str       = default( g2str,        15 )  # [ 0 - ???] strength of grain / for midtone areasg3str       = default( g3str,        25 )  # [ 0 - ???] strength of grain / for bright areasg1shrp      = default( g1shrp,       60 )  # [ 0 - 100] sharpness of grain / for dark areas (NO EFFECT when g1size=1.0 !!)g2shrp      = default( g2shrp,       66 )  # [ 0 - 100] sharpness of grain / for midtone areas (NO EFFECT when g2size=1.0 !!)g3shrp      = default( g3shrp,       80 )  # [ 0 - 100] sharpness of grain / for bright areas (NO EFFECT when g3size=1.0 !!)g1size      = default( g1size,     1.50 )  # [0.5 - 4.0] size of grain / for dark areasg2size      = default( g2size,     1.20 )  # [0.5 - 4.0] size of grain / for mid-tone areasg3size      = default( g3size,     0.90 )  # [0.5 - 4.0] size of grain / for bright areasg1tex       = default( g1tex,         0 )  # [ 0 - 100] strength of "material texture" appearanceg2tex       = default( g2tex,         0 )  # [ 0 - 100] (in fact: 'bump' effect)g3tex       = default( g3tex,         0 )  # [ 0 - 100] for dark / midtone / bright graintemp_avg    = default( temp_avg,      0 )  # [ 0 - 100] percentage of noise's temporal averagingth1         = default( th1,          24 )  # start of dark->midtone  mixing zoneth2         = default( th2,          56 )  # end  of  dark->midtone  mixing zoneth3         = default( th3,         128 )  # start of midtone->bright  mixing zoneth4         = default( th4,         160 )  # end  of  midtone->bright  mixing zoneontop_grain = default( ontop_grain,   0 )  # [ 0 - ???] additional grain to put on top of prev. generated grain

    Da sind ja mannigfaltige Möglichkeiten der Manipulation so wie ich das sehe... nur leider blick ich da nicht so ganz durch:

    Wenn ich das von oben bis unten zusammenzähle komme ich auf 18 parameter, links oben steht jedoch: Grainfactory3(5,7,10)
    Analog zum simplen AddGrain wären das 3 parameter zum spielen(5,7,10)... Wofür stehen die ?
    wenn ich einen der unteren parameter ändern möchte, tue ich das in der oberen Zeile, z.b.

    Code
    function GrainFactory3(clip clp,int "g1str",int "g2str"

    anstatt g1str eine Zahl (z.b. 20) eintragen, oder direkt in der Zeile

    Code
    g1str       = default( g1str,        13 )  # [ 0 - ???] strength of grain / for dark areas


    die 13 mit der 20 ersetzen ?

    Wenn ich echten Grain mit künstlichem vergleiche scheint es mir als ob das echte Korn von den Abmessungen grösser ist und von Bild zu Bild nicht abrupt von einem neuen Korn abgelöst wird, sondern im darauffolgenden Bild immer noch ein gewisser "Nachhall", ein "Schatten" des vorhergehenden Korns zu erkennen ist ? Vielleicht schmiert im Gegensatz dazu das künstliche nicht so nach...(ich weiss nicht wie ich das besser beschreiben soll...)Ist mit diesem Effekt vielleicht die "temporale" Eigenschaft der Beeinflussung gemeint, und wenn ja, welcher parameter ist dafür verantwortlich? Dieses "Geschmiere" geht beim echten Grain sogar so weit, dass sich regelrechte Mikro-Muster zu bilden scheinen(ich nenne sie mal "krabbelnde Mikro-Würmer" lol), die ich bei den Default Einstellungen der GrainFactory nicht erkennen kann. Vielleicht ist das nur eine optische Täuschung, aber genau darum geht es ja: Genau diese soll ja hervorgerufen werden. An welchen Parametern muss ich drehen um diesen Effekt zu provozieren ? Vielleicht ist es immer noch zu "hochfrequent" wie du es nennst ? Irgend etwas muss im natürlichen Grain sein, dass x264 besonders gut annimmt... bemerkenswerterweise schon ab nur 5000 Kbps auch bei 1080er Material... Wenn man sich dazu die "tune grain"-settings ansieht, könnte man vielleicht gezielt diese parameter beeinflussen, die in diese settings hineinarbeiten(siehe Selur) ?... Bei 18 Einstellungmöglichkeiten komme ich ja vom 100sten ins 1000ste beim rumprobieren, wobei ich dann ja für jede Änderung/Kombinationsänderung eine gesonderte .avs erstellen und einzeln zum Vergleichen in VdubMod laden muss. Wobei dann noch zusätzlich die Vorschau ja sowieso vom Endergebnis abweicht und ein direkter und unmittelbarer Vergleich nahezu unmöglich zu sein scheint...
    Am liebsten wäre mir ein Mischpult(so wie bei der Windows-Lautstärkeregelung z.b.)wo ich sofort die Auswirkungen sehen könnte...
    da das jedoch bei diesem Avisynth-system eh unmöglich ist, vertraue ich auf deine Erfahrung, da du dir ja die parameter ausgedacht hast.

    8 Mal editiert, zuletzt von lil barny (30. November 2009 um 06:52)

  • Grundkurs AviSynth-Syntax! ;) -- Bitte lies dir die Dokumentation durch, die mit dem AviSynth-Installer auf deine Platte kommt. Besser als da können wir auch nicht erklären, wie notwendige, freiwillige und benannte Parameter funktionieren.

    Kurz:

    - Wenn der Name des Parameters in der Deklaration der Funktion in Anführungszeichen steht, muss für ihn kein Wert angegeben werden (dann sollte der Programmierer aber für einen Standardwert sorgen).

    - Alle Werte vom ersten Parameter an können ohne Namen angegeben werden (die "ersten" drei Zahlen definieren also die ersten drei Parameter).

    - Wenn ein Parameter beim Aufruf der Funktion ausgelassen wird (also nicht lückenlos von links alle angegeben werden), dann muss der nächste mit Namen benannt werden, z.B.:

    GrainFactory3(20, g3str=30)
    # g1str ist der erste Parameter (nach dem Clip), muss also nicht benannt werden (aber darf)
    # g2str wurde nicht neu definiert, also übersprungen
    # g3str muss benannt werden, weil g2str übersprungen wurde

    Die "Mikrowürmer" entstehen insbesondere durch temporale Beziehungen, also Überblendungen aufeinanderfolgender Rauschbilder.

    Ein "Mischpult" bietet dir das Programm "AvsP". (Nichts ist unmööööögliiiich!)

  • Vorneweg: GrainFactory3() hat den Parameter "temp_avg", um ein zeitliches Vermischen des Grains zu produzieren. "temp_avg=100" erzielt volle 1:1:1 Gewichtung, "temp_avg=75" erzielt eine 1:2:1 Gewichtung (temporaler Gauss-Filter). Vorgabe ist "temp_avg=0", d.h. gar keine zeitliche Filterung.

    Aaaaber ...

    Kleines Brainstorming über "zeitliche Aspekte" von Filmgrain:

    Ich weiß, was Du mit den "Würmern" meinst, der Effekt ist bekannt. Aber: das ist KEINE Eigenschaft von "echtem" Film Grain! Überleg' mal: "echtes" Film Grain wird verursacht durch Silbermoleküle im Zelluloid des Filmstreifens, d.h. es ist sozusagen eine mechanische Eigenschaft des Materials. Und, da die Verteilung der Moleküle chaotisch-zufällig ist, bilden sie für jeden einzelnen Filmstreifen ihr völlig eigenes Muster. Aus der physikalischen Ursache des Film-Grains ergibt sich daher zwingend, dass es keinerlei zeitliche Beziehung des Grains zwischen den aufeinanderfolgenden Bildern gibt. PUNKT.

    Dass sich dieser Effekt bisweilen trotzdem beobachten lässt, hat andere Gründe. Mir ist dieser Effekt vor allem daher vertraut, wenn man versucht, sehr starkes Grain mit bewegungskompensierten Rauschfiltern zu entfernen. Da passiert es nämlich gerne mal, dass die Bewegungskompensation versucht, das Grain als solches zu kompensieren. Das gelingt wegen der chaotischen Verteilung zwar nur sehr unvollständig, aber trotzdem: die Bewegungssuche sucht nach der bestmöglichen Übereinstimmung ... und irgend etwas wird sie finden. Und das ist dann dafür verantwortlich, dass ein "langsames" Grain entstehen kann, mit "kringelnden Würmern" und so.
    Etwas sehr ähnliches kann auch bei MPEG-Komprimierung entstehen. Die Bewegungskompensation sucht nach bestmöglichen Übereinstimmungen, und die zeitlichen Aspekte der Komprimierungstechnik (auch die P-Frames, vor allem aber die bidirektionalen B-Frames) sorgen dann vermöge ihrer Verlusthaftigkeit für die "Filterung".

    Merke: Das Grain, dass man von einer mit MPEG-2 komprimierten DVD zu sehen bekommt, ist kein Film Grain. Es ist nur noch das, was die MPEG2-Komprimierung daraus gemacht, bzw. davon übrig gelassen hat. Es wird zwar im großen und ganzen einen sehr ähnlichen Eindruck erwecken, aber wenn man genau hinschaut, zeigen sich recht deutliche Unterschiede.


    Was heißt das jetzt für Dich? - Weiß ich auch nicht, das ist Deine Sache. Ich hab' eben nur mal über ein paar grundlegende Tatsachen laut nachgedacht. "Ich will [soundso] haben" ist ja gut und schön ... besser ist's, zu wissen, *warum* man etwas will. Verständnis der grundlegenden Vorgänge ist dabei durchaus hilfreich ... bis zu dem Punkt, an dem man sich fragt: "will ich das wirklich?"

  • Merke: Das Grain, dass man von einer mit MPEG-2 komprimierten DVD zu sehen bekommt, ist kein Film Grain.
    Es ist nur noch das, was die MPEG2-Komprimierung daraus gemacht, bzw. davon übrig gelassen hat.

    ...bis zu dem Punkt, an dem man sich fragt: "will ich das wirklich?"


    ja, ich will :zunge:
    ok, es geht um die Simulation von Pseudo-Grain(jetzt verstehe ich auch warum die x264 Kompression so gut MPEG-2 Grain wiedergeben kann und weniger gut den "Echten")
    die Würmer erzeugen wohlige Schauer beim Betrachten, so ähnlich wie warmer Kerzenschein bei Kuchengebäck... :D:D:D

    das ist man so gewohnt und genau das will man dann auch so haben.

    Ich könnte mir vorstellen dass die Mehrheit sich unter Grain eigentlich MPEG Grain vorstellt und damit rechnet dass ein Generator genau das erzeugen wird.
    Vielleicht sollte man von vorneherein daher die Defaults im script zum download verändern...

    Danke für die Ausführungen. Werde das mal dann testen.

    5 Mal editiert, zuletzt von lil barny (1. Dezember 2009 um 07:12)

  • Habe die .avs in AvsP geladen, als ext. player nehme ich den mplayer classic.
    Dort sehe ich immer nur die original .avs, egal ob ich an dem temporal-regler ziehe oder nicht...
    Wie kriege ich den player dazu mir das laufende Video simultan mit den Wert-Änderungen anzuzeigen ? Das Krabbeln lässt sich nicht so gut an Standbildern beurteilen...

    EDIT

    LigH,
    bei der Hilfe von AvsP gibts ein kleines Hilfsvideo, man kann man sehen, wie sich der Wert oben im script automatisch mit dem Ziehen des Reglers unten rechts ändert. Das funzt bei mir nicht...
    Was läuft denn jetz nun wieder schief ? :( Habe ich etwa schon wieder irgendeine veraltete Version runtergeladen ? Habe die v2.0.2

    http://img23.imageshack.us/i/unbenannt1erz.jpg/

  • Bin mir als nicht-Benutzer von AvsP zwar nicht völlig sicher, aber ... Regler bei laufendem Video verschieben kann eigentlich nicht funktionieren. AvsP ist ja nur ein Frontend/GUI für Avisynth. Und Avisynth muss das komplette Script von Grund auf neu initialisieren, wenn sich am Script irgendwas ändert ... (was bei "komplexen" Scripten ja durchaus mehrere Sekunden dauern kann - von "Live Preview" wäre dann ja eh' keine Rede mehr.)

    Zum direkten Vergleich verschiedener Parametereinstellungen würde ich eher so was machen wie

    v1 = source.Filter(param=0.00)
    v2 = source.Filter(param=0.33)
    v3 = source.Filter(param=0.66)
    v4 = source.Filter(param=1.00)

    stackvertical( stackhorizontal(v1,v2), stackhorizontal(v3,v4) )

  • Da werfe ich auch noch mein Array4x4 in die Diskussionsrunde: Hiermit kann man die Veränderung von zwei Parametern in je vier Schritten vergleichen. Da es aber gewisse Einschränkungen hinsichtlich Breite und Höhe gibt, ist es für YV12-Clips nicht so einfach zu verwenden; Teilbarkeit durch 16 sollte für Höhe und Breite mindestens vorliegen, besser noch höhere Zweierpotenzen.

Jetzt mitmachen!

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