AviSynth - geeignet für Bildbearbeitung?

  • Das mit dem Farbraum ist mir schon klar. Wenn, dann muss der betreffende Filter auch RGB unterstützen.


    Das kann ich verstehen, aber klar muss sein:
    Damit schrängst du die auswahl dramatisch ein.

    Was mir momentan noch etwas abgeht, ist eine geeignete Schärfemethode innerhalb von AviSynth, die auch den RGB-Farbraum unterstützt. Sharpen() ist sicher nicht der Weisheit letzter Schluss. ;)

    Wie gesagt die aus wahl ist durch das RGB-Kriterium stark eingeschränkt.
    LimitedSharpenFaster() kann man deshalb schon mal knicken.

    Als kleines Trostpflaster habe ich mal Kassandro's ModerateSharpen ein klein wenig gemodet damit es RGB unterstützt. ModerateSharpen ist ne kleine funktion die auf Sharpen() aufbaut und versucht die überschärfung etwas zu mildern.

    ModerateSharpen(amount=0.75, repmode=9, planarBool=true) #RGB-Kompatibeles Beispiel

    function ModerateSharpen(clip input, float "amount", int "repmode", Bool "planarBool")
    {
    # Small modification of Kassandro's ModerateSharpen by Redfox
    # Allows now tweaking of Repair's "mode" and "planar" parameter
    amount=default (amount, 0.75)
    repmode=default (repmode, 17)
    planarBool=default (planarBool, false)

    sharpened = Sharpen(input, amount)
    return Repair(sharpened, input, mode=repmode, planar=planarBool)
    }

    Wenn der planarBool-Parameter "true" ist kann Repair auch mit RGB, wie es von imagereader zur verfügung gestelt wird, umgehen.

    EDIT: Repair.dll ist teil des Removegrain-Paketes.
    EDIT2: und ich hätte gerne JPEG2000 support http://www.ece.uvic.ca/~mdadams/jasper/

  • Eigenartigerweise, wenn ich den folgenden Script:

    Zitat

    Import("lib\ModerateSharpen.avs")

    ImageSource("$FileName", end=0, use_DevIL=False, pixel_type="RGB32")
    LanczosResize($Width, $Height)
    ModerateSharpen(amount=0.75, repmode=9, planarBool=true)


    innerhalb von Fritz Photo ausführe, erhalte ich z. B. das folgende Resultat.

    [Blockierte Grafik: http://img267.imageshack.us/img267/9947/img2404000000kq5.jpg]

    Erst mit einer kleinen Änderung im Script funtioniert es.

    Zitat

    Import("lib\ModerateSharpen.avs")

    ImageSource("$FileName", end=0, use_DevIL=False, pixel_type="RGB32")
    LanczosResize($Width, $Height)
    ConvertToRGB24()
    ModerateSharpen(amount=0.75, repmode=9, planarBool=true)
    ConvertToRGB32()

    [Blockierte Grafik: http://img154.imageshack.us/img154/2461/img2404000000vh5.jpg]

    Ich habe auch noch eine modifizierte Version hochgeladen (Änderungsdatum beachten). So kann man z. B. in einem Unterverzeichnis vom Template-Verzeichnis Scripte mit zusätzlichen Funktionen speichern und als Import laden (relative Pfadangabe genügt).

  • Es gab noch mal eine kleine Änderung. Und zwar sollte in den Scripten am Schluss immer

    Zitat

    $Clip = <AviSynth-Befehl>
    Return $Clip


    stehen (siehe Vorlagen). Bei größeren Scripten kommt man nicht umhin, mit den Clip-Variablen zu arbeiten. ;) Ich habe die Vorlagen diesbezüglich gleich angepasst.

    Redfox:
    Dürfte ich dein ModerateSharpen(), so wie es ist, mit in das Vorlagenverzeichnis übernehmen?

  • Ich habe jetzt etwas ganz Verrücktes gemacht. :)

    Na ja, vielleicht ist es gar nicht so verrückt. Und zwar habe ich ein 3648x2736 großes TIF-Bild mit der „intelligenten Methode“ von Paint Shop Pro auf 800x600 skaliert. Dieses Bild habe ich dann im TIF-Format abgespeichert. Es sei dies das Bild A.

    Anschließend habe ich das Bild A wieder auf 3648x2736 skaliert (wiederum mit der "intelligenten Methode"). Dieses Bild habe ich ebenfalls im TIF-Format abgespeichert. Nennen wir es Bild B.

    Nun habe ich mit Fritz Photo von Bild B ein paar Verkleinerungen, unter Verwendung der folgenden Vorlage, anfertigen lassen.

    Zitat

    Import("lib\ModerateSharpen.avs")

    ImageSource("$FileName", end=0, use_DevIL=False, pixel_type="RGB32")
    LanczosResize($Width, $Height)
    ConvertToRGB24()
    ModerateSharpen(amount=0.2, repmode=17, planarBool=true)
    $Clip = ConvertToRGB32()
    Return $Clip


    Den Wert für amount habe ich vorerst auf 0.2 belassen und für repmode habe ich alle Werte von 1 bis 18 verwendet. Die Ergebnisse habe ich dann mit Fritz Framalyzer auswerten lassen. Als Referenzbild diente das Bild A. Ich habe also das Bild A mit den Verkleinerungen verglichen. Die besseren Ergebnisse seien hier genannt.


    Anschließend habe ich dann den Wert für repmode fest auf 17 belassen und ein bisschen mit den Werten für amount gespielt.

    Zitat

    amount = 0.3: 0,9531
    amount = 0.4: 0,9531
    amount = 0.5: 0,9531
    amount = 0.7: 0,953


    Die Erhöhung des Wertes für Sharpen (wird ja in ModerateSharpen aufgerufen) bewirkt offensichtlich nichts bzw. nicht viel (die Schärfe wird limitiert, was ja auch der Sinn von ModerateSharpen ist).

    Nun habe ich das Bild B mit Vallen JPegger verkleinern lassen und den SSIM-Wert ermitteln lassen. Für Vallen JPegger ergibt sich ein Wert von Q = 0,9494. Eine Sichtkontrolle bestätigt mir dann auch den schlechteren Wert. Zum Anzeigen von Bilder ist das Programm zwar sehr gut geeignet, wie ich finde, aber zum Verkleinern von Bilder dann doch nicht - das Programm schärft zu stark nach (Zick-Zack-Muster an schräg verlaufenden Kanten). Die Methode im Programm heißt dann auch so: „Schnell verkleinern“. ;)

    Weiter im Kontext. Nun habe ich die verschieden Verkleinerungsmethoden von AviSynth getestet. Es wurde dabei immer der oben genannte AviSynth-Script verwendet. Nur die Resize-Methode war eine andere.

    Gestern machte ich auch noch Versuche mit den verschiedenen Schärfemethoden. Sharpen schnitt da gar nicht gut ab. ModerateSharpen brachte die besseren Ergebnisse.

    Gut, das hängt jetzt auch vom Motiv und einigen anderen Dingen ab. Und auch die Fragezeichen bzgl. SSIM mögen hier angebracht sein, aber für eine grobe Richtungsbestimmung – als Grundlage für weitere Betrachtungen – lassen sich die Ergebnisse sehr wohl verwenden.

    Unabhängig der SSIM-Werte gefällt mir obiger Script schon mal ganz gut, jedoch bin ich eher geneigt (subjektiver Eindruck), repmode = 9 zu verwenden. Das kommt meinen bisherigen (guten) Ergebnissen mit Irfan View schon sehr nahe.

    EDIT2: und ich hätte gerne JPEG2000 support


    Wird notiert. ;)

  • Dürfte ich dein ModerateSharpen(), so wie es ist, mit in das Vorlagenverzeichnis übernehmen?


    *SEUFTZ* ModerateSharpen() ist NICHT von mir! Es ist von Kassandro! Ich hab doch extra diese notiz eingefügt:

    Zitat

    # Small modification of Kassandro's ModerateSharpen by Redfox
    # Allows now tweaking of Repair's "mode" and "planar" parameter

    damit nicht eine ähnliche Konfusion entsteht wie bei dem RemoveDust() - LRemoveDust() Fall.

    Alles was ich gemacht habe war, zwei parameter die vorher "hardgecoded" waren per Variabele zugänglich zu machen(ums programier-technisch auszudrücken ;) ).

    Um die Frage zu beantworten:
    Meientwegen gerne, aber da es sich um Kassandro's Fuktion hadelt hat das natürlich keine Rechtliche Gültikeit. Und von Kassandro hat man schon ca. 2 Jahre nichts mehr gehört...

    Zu Repair:

    Ja du hast recht, mode 17 ist wohl der geeignetste - steht so glaube ich auch in der Docu. Hatte mich Vertippt, Sorry :redface:.

    Zu dem Filter-RGB problem ist mir noch was eingefallen:

    GREYCstoration!

    Es gab einege Treads zu dieser Software (kein Avisynth filter):
    http://forum.doom9.org/showthread.php…=GREYCstoration
    http://forum.doom9.org/showthread.php…=GREYCstoration
    http://forum.doom9.org/showthread.php…=GREYCstoration

    Die resonanz war eher bescheiden, aber dem schliese ich mich nicht 100%ig an.

    Hier mal ein Auschnitt, original und Denoist mit folgenden Parametern:

    Code
    GREYCstoration_pc_win32.exe -restore "94c8df3902510a40a32a1378a.BMP" -alpha 0.5 -sigma 0.5 -p 1 -a 0.85 -iter 1 -dt 150

    [Blockierte Grafik: http://img2.myimg.de/vergleich713.png]
    Ich würde nicht sagen das das zu sehr blurt.

    Hier das komplette Bild als lossless JPEG2000:
    http://rapidshare.com/files/27933883…n_dorf.jp2.html

  • Die resonanz war eher bescheiden, aber dem schliese ich mich nicht 100%ig an.


    Da stimme ich mit dir überein. So schlecht finde ich das Ergebnis nun auch wieder nicht. Gut, an manchen Stellen im Hintergrund, vor allem an den Bäumen, kann man durchaus Blur-Effekte erkennen – ganz ohne Kolalateralschäden läuft eine Entrauschung eben nie ab. Wobei mir das Rauschen in dem gezeigten Bild gar nicht stören würde. Entrauschen würde ich nur so viel, dass man gerade noch ein Rauschen erkennen bzw. erahnen kann.

    Mir ist noch eine Idee gekommen, man könnte ModerateSharpen() doch auch mit MSharpen() verwenden, quasi als Ersatz für Sharpen().


    Wird aber vermutlich auch nicht mehr bringen.

  • Ich hab übrigens gerade noch mal in der RemoveGrain/Repair-Docu angesehen und da wurde DOCH der mode=16 emfohlen...

    Unter Umständen ist ein SSIM-wert nicht aussagekräftig genug um die "Optik" eines Schärfers opjektiv zu beurteilen.

    Eigentlich sind diese Metriken ja nur zur ermittlung der verschlechterung von bildern entwickelt worden niht um ewentuelle verbesserungen zu messen.

    Das erinnert mich aber wieder daran, das ich mal gegrübelt habe ob es nicht möglich wäre eine solche Bildverbeserungs-Metrik zu basteln in dem man SSIM und SAD kombinert.
    Das solte in etwa so funzen:
    Wenn ein Filter/Schärfer einen hohen SAD wert und einen "guten" SSIM wert erzeugt ist er besser als ein filter/Schärfer der einen Kleinen SAD-Wert erzeugt und schlechte SSIM-werte hat.

    Wenn man nur den SSIM-Wert betrachtet dann hat ein Filter der nur sehr wenig(/nichts - als extem Beispiel) ändert immer einen besseren Wert als ein Filter der Stärkere änderungen durchführt, auch wenn sich diese Änderungen optisch prositiv auswirken.

    Ist nur so eine Idee - die Mathematik hinter den ganzen Metriken kenne ich sowiso nicht (Vileicht ists also auch totaler Quatsch :D ).

    Wegen Msharpen:
    Der wurde ja eher für Animes enwickelt, (und gefällt mit übrigens nicht besonders) ob der bei Real-Material wirklich so sinnvoll ist, müsste man ausfürlich austesten, optimistisch bin ich da aber nicht...

  • Unter Umständen ist ein SSIM-wert nicht aussagekräftig genug um die "Optik" eines Schärfers opjektiv zu beurteilen.


    Ja, das wär’ was, wenn das ginge, man könnte ein Programm basteln, dass für beliebige Parameter in einem AviSynth-Script die optimalen Kombinationen ermitteln könnte, und sei es nur, um eine schnelle Vorauswahl treffen zu können. Voraussetzung wäre allerdings, dass ein „Referenzbild“ zur Verfügung steht (hat man aber eigentlich nicht). Man bräuchte für jeden Parameter nur ein Intervall und die Größe der „Steps“ definieren. Das Programm würde dann für alle möglichen Kombinationen SSIM-Werte ermitteln. Aber mit Filtern ist das so eine Sache – der beste Filter würde dann derjenige sein, der gar nichts macht. :)

    Eigenartigerweise habe ich bei einem Beispiel aber die Beobachtung gemacht, dass nach einer Verkleinerung mit zunehmender Nachschärfung die SSIM-Resultate besser werden, einen Höhepunkt erreichen und ab einem bestimmten Schärfungsgrad wieder schlechter werden. Und wie es der Zufall so will, ist das auch „in etwa“ der Punkt, wo ich (rein subjektiv) aufhören würde, nachzuschärfen.

    Andererseits stellt sich die Frage, ob ein Bild, das ich zunächst vergrößere, um es anschließend mit verschiedenen Resizern wieder auf die Ursprungsgröße zu bringen, als Referenzbild überhaupt herhalten kann? Womöglich hängen die Ergebnisse in einem sehr starken Maße von der verwendeten Vergrößerungsmethode ab. Man müsste das mal an ausreichend vielen Beispielen belegen bzw. an einem (einzigen) Beispiel widerlegen.

    Eine Wissenschaft soll jetzt aus dem Verkleinern und Nachschärfen auch nicht werden. Die Richtung sollte einfach stimmen. Und mit AviSynth ist es mir zu mindestens schon mal möglich, in etwa auf das Niveau von IrfanView (meine persönliche Messlatte) zu gelangen (evtl. sind die Ergebnisse sogar besser).

    Wegen Msharpen:
    Der wurde ja eher für Animes enwickelt, (und gefällt mit übrigens nicht besonders) ob der bei Real-Material wirklich so sinnvoll ist, müsste man ausfürlich austesten, optimistisch bin ich da aber nicht...


    Der Autor schreibt aber, dass man MSharpen durchaus auch für "normales Video" verwenden kann. Bei ersten, eher oberflächlichen Tests, gefiel mir MSharpen() gar nicht mal so schlecht. Vermutlich hängt das aber auch damit zusammen, dass ich MSharpen nur sehr „moderat“ verwende, z. B.: MSharpen(threshold=2, strength=25, highq=true).

    Hier mal ein Vergleich zwischen IrfanView mit Lanczos-Filter und High Pass Sharpening und der AviSynth-Variante mit LanczosResize und MSharpen. Das Originalbild hat eine Auflösung von 3648x2736.

    IrfanView – Lanczos-Filter, High Pass Sharpening (Range=3, Strength =140, Hard Light)
    [Blockierte Grafik: http://img221.imageshack.us/img221/4103/200704280013irfanviewlatn5.jpg]

    AviSynth – LanczosResize, MSharpen(threshold=2, strength=25, highq=true).
    [Blockierte Grafik: http://img95.imageshack.us/img95/9927/200704280013fplanczosrecv7.jpg]

    Es gibt Stellen, die sehen mit IrfanView besser aus und es gibt Stellen, die sehen mit der AviSynth-Variante besser aus.

  • Bezüglich des RGB/YV12 Problems...

    Es gibts doch so viele schöne YV12 Filter, warum nicht R, G und B -> 3x Y wandeln!? ;]

    MfG~Soulhunter

  • Bezüglich des RGB/YV12 Problems...

    Es gibts doch so viele schöne YV12 Filter, warum nicht R, G und B -> 3x Y wandeln!? ;]

    Vileicht weil das Plugin bis jetzt noch nicht veröffentlicht wurde, oder? :lol:

    Auf Doom9.org finde ich dazu jedenfals nur diesen alten Threat:
    http://forum.doom9.org/showthread.php…ighlight=RGBtoY

    Und auf deiner Seite ist auch nichts zu sehen:
    http://soulhunter.chronocrossdev.com/index.html#003

    Aber zumindest schön das man dir dieses Plugin nicht wieder aus der Nase ziehen muste, wie sonst üblich:

    http://forum.doom9.org/showthread.php?p=813275#post813275

    ;)

  • Billige Ausreden! ;)

    - Bordanhänge,
    - Rapidshare; oder ein anderer Filehoster,
    - Kostenloser Webspace bei irgendeinem anbeiter

    ... das gabs schon damals. :zunge:


    Bei so nem Filehoster hab ichs dann ja auch hochgeladen, und als das Plugin dann ne gewisse Entwicklungsstufe erreicht hatte hab ich ja auch nen eigenen Thread inklusive Link gepostet [Alles innerhalb von 24 Stunden wenn ich mich recht erinnere]. Via Boardanhand wär das auch net schneller gegangen, oder? :P



    BTW: du besitzt nen EIGENEN SERVER :eek:


    Ja, hier bei mir zuhause... Is doch nix besonderes, schließlich kann man jeden PC als Server betreiben, auch deinen... Nur den einen oder anderen Internetanbieter könnte das stören, hehe... Die Website is allerdings auf nem Server von jemand anderem [ChronoCross ausm englischem Forum].


    Ps: Hab n Link zu der Zip [plus Readme und 2 Beispiele] auf meine Seite gepackt!

    MfG~Soulhunter

  • Hey man, das funzt ja prächtig! :)

    gerade mal folgendes getestet:


    Ergebnis:

    vorher: http://www.myimg.de/?img=sleepinggirl272.jpg

    geschärft: http://www.myimg.de/?img=sle4aa2.png

    entspricht das deiner definition von schönheit?

    Zitat von Soulhunter

    "Beauty is when the face of a girl is nuff to fap..."


    :lol:


    Ist RGBHack zufällig Teil dieses Projektes:

    Zitat


    ?

    Könnte man auf gleiche weise nicht auch einen workarount basteln damit Filter YUV 4:4:4 unterstützen? getrennte luma/Croma-Filterung ohne das mit YUV2/YV12 verbundene Cromasubsampling wäre echt genial.

    Zitat

    Is doch nix besonderes, schließlich kann man jeden PC als Server betreiben, auch deinen...

    Ach, so meist du das. Sogesehen ist jeder der sich was per Bittorrent zieht n Server. ;)

    Zitat

    Nur den einen oder anderen Internetanbieter könnte das stören, hehe...

    Wenn man nicht um Erlaubnis fragt, dann verbietet es einem auch keiner. ;)

    EDIT: ne Readme für BruteIVTC wäre auch nett.

  • Zu BruteIVTC kann ich leider keine Readme schreiben da ich nicht weiß was die Parameter bewirken... Allerdings scheint es so dass man die sowieso nicht braucht da der Filter auch mit den Defaults einwandfrei seinen Dienst tut... Hab auch noch in keinen Script BruteIVTC in Kombination mit Parametern gesehen... Aber ich frag bei Gelegenheit mal den Autor des Plugins! Zu dem Server: Ein FTP Server mit Zugriff auf C:\ is schon nützlich wenn man mal von woanders aus auf seine Daten zugreifen will... Übertrage sogar Daten zwischen meinen PCs via FTP übers LAN... Is komfortabler und geht bei mir auch aus irgend einem Grund schneller als über die Windows Netzwerkverbindung... Das Thema Bittorrent und Co lass ich mal vorsichtshalber aus! ;] Zu dem "digicam picture processing" Ding: Bis auf diese RGB -> YYY Sache und nem Script um Bilder nach außen hin zu schärfen [viele Kameras neigen dazu zu den Außenkanten hin etwas an schärfe zu verlieren...] ist daraus noch nichts entstanden... Finde im Moment weder Zeit noch Motivation dazu [Freundin, Arbeit, Freundin...] Zu der YUV -> YYY Konvertierung: Das müsste auch gehen, müsste man mal n Blick in die AviSynth Anleitung werfen... Wenn ich mich recht erinnere waren da Befehle um U oder V -> Y und umgekehrt zu verschieben, oder!? Zu der Sache mit der Schönheit: Nicht so ganz mein Fall... Aber was solls, Geschmäcker sind halt verschieden, heh? ;D

    MfG~Soulhunter

  • :daumen:

    Mensch! Kaum ist man ein paar Tage nicht mehr Online, schon tun sich Lösungen auf! Das mit dem getrennten Verarbeiten der Farbkanäle (Umwandeln in ein entsprechendes Zwischenformat) ging mir auch schon durch den Kopf. Werde mir in nächster Zeit auch mal ein paar Gedanken hierzu machen. Am Programm selbst habe ich bis dato keine Änderungen vorgenommen.

  • Was ich gern neben der Batch-Konvertierung sehen würde wär ne Oberfläche ala IrfanView: Bild im Fenster + Menu aus dem man Filter Presets wählen kann [und ne Option um dort selbst welche hinzuzufügen]. Denn, erstens benötigt jedes Bild eine unterschiedliche Art von Filterung, und zweitens lässt sich mit ner Bildvorschau leichter arbeiten [man sieht direkt den Effekt des gewählte Filters und kann bei nicht gefallen 'Rückgängig -> Andere Filter-Einstellung' ausführen...]. Die Batchfunktion könnte man ja genau wie bei IrfanView als Option ins Menu einbinden!

    MfG~Soulhunter

  • Auch daran habe ich schon gedacht - mehrere Scripte laden können, die Reihenfolge bestimmen können und eine Vorschau.

    In der ersten Version habe ich das jedoch ganz bewusst außen vor gelassen. Zunächst galt es ja, erst mal die Möglichkeiten von AviSynth bzgl. Bildbearbeitung zu erkunden. Momentan muss man halt noch auf externe Bildbetrachtungsmöglichkeiten zurückgreifen. So was wie eine Mehrfachfilterung und eine Vorschau wird aber definitiv noch folgen. ;)

Jetzt mitmachen!

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