Beiträge von Archimedes1

    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. ;)

    :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.

    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.

    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 kann hier nur für die 4-er Version sprechen. Da hat sich durchaus was getan. Was die Verarbeitung von DV-Videos anbelangt, hat TMPGEnc XPress gegenüber TMPGEnc Plus spürbar zugelegt und ist in etwa auf dem Niveau des CCE Basic angelangt, so war jedenfalls mein Eindruck, als ich TMPGEnc Plus 2.5, Version 2.524.63.181, mit TMPGEnc 4.0 XPress, Version 4.2.3.193, verglichen habe.

    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. ;)

    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?

    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).

    Eine erste Preview-Version habe ich schon mal hochgeladen. Das Programm benötigt AviSynth 2.56 oder höher. Würde mich freuen, wenn eine Rückmeldung käme, dass das Programm auch unter Vista läuft. ;)

    Die Bedienung sollte eigentlich aus dem Programmablauf zu ersehen sein.

    1. Bilder laden
    Es werden momentan die Formate BMP, JPG, PNG, PPM, TGA und TIF unterstützt (je nach den Fähigkeiten des gewählten AviSynth-Filters zum Einlesen von Bildern).

    2. AviSynth-Script laden
    Im Vorlagenverzeichnis befinden sich bereits ein paar einfache Scripte zum Verkleinern von Bildern. Allerdings noch ohne das (notwendige) Nachschärfen, da ich mich hierüber auch erst meine Gedanken machen muss. Momentan bieten sich für den RGB-Farbraum die Filter Sharpen() und Msharpen() an. Gerade der letztere scheint mir interessant zu sein. Brauchbare Scripte werden sich sicher finden lassen. ;)
    In den Scripten wird man auch auf Schlüsselwörter stoßen, die dann vom Programm an entsprechender Stelle ersetzt werden („$FileName“, „$Width“ und „$Height“). Vor allem das Schlüsselwort „$FileName“ darf nicht ersetzt werden.

    3. Einstellungen
    Die Zahlen für die Breite und Höhe eines Bildes ersetzen später im AviSynt-Script die Schlüsselwörter „$Width“ und „$Height“ (falls vorhanden). Bei der Skalierung wird darauf geachtet, dass die eingestellte Größe nicht überschritten wird. Gegebenenfalls stimmt das resultierende Bild nur mit einer Seite (Höhe oder Breite) überein.
    Beim JPG-Format kann man zwischen einer festen und einer variablen JPG-Qualität wählen. Im letzteren Fall gibt man einfach eine Dateigröße an, die nicht überschritten werden darf. Das Programm ermittelt dann die maximal mögliche JPG-Qualität.
    Wenn kein Zielverzeichnis angegeben wird, werden die Dateien in das gleiche Verzeichnis geschrieben, wo sich die Originaldateien befinden. Die Dateien erhalten dabei Namen nach folgendem (AviSynth-)Muster: <Originaldateiname>_000000.<ext>.

    4. Zusammenfassung
    Hier kann man noch mal alle Einstellungen kontrollieren und die Konvertierung starten.

    Mal wieder ein kleiner Zwischenstand. Da die EXIF-Daten bei der AviSynth-Filterung unweigerlich verloren gehen, habe ich die Option „Original EXIF-Daten behalten“ hinzugefügt. Desweiteren kann bei der JPG-Ausgabe nun auch eine Dateigrößenbeschränkung angegeben werden. Für eine vorgegebene Dateigröße wird dabei die maximal mögliche JPG-Qualität ermittelt.

    [Blockierte Grafik: http://img119.imageshack.us/img119/6074/fritzphotoprevieweinstexp2.jpg]

    Das Tool – ich werde es vermutlich „Fritz Photo“ nennen - schreitet weiter voran. Auch wenn nicht alle Filter und Skripte wegen der fehlenden RGB-Farbraumunterstützung verwendet werden können, wird es mir eine große Arbeitserleichterung sein. Ich habe mittlerweile auch die Zielformate BMP, PNG, PPM, TGA und TIF hinzugefügt. Damit lassen sich auch reine Konvertierungen vornehmen. Als Script braucht man hierzu nur die Datei ImageSource.avs aus dem Vorlagenverzeichnis laden. Diese besteht nur aus einer Zeile: ImageSource("$FileName", end=0, pixel_type="RGB32").

    Ausgabeformate wird es definitiv mehr geben. Das JPG-Format erzeuge ich derzeit mit der Unit „Jpg“ in Borland Delphi. 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. ;)

    Ein paar Bildschirmausdrucke kann ich dir schon zeigen. Ist halt alles noch etwas rudimentär (siehe Einstellungen).

    [Blockierte Grafik: http://img406.imageshack.us/img406/8269/fritzphotopreview1wg7.jpg]

    [Blockierte Grafik: http://img403.imageshack.us/img403/5598/fritzphotopreview2ib3.jpg]

    [Blockierte Grafik: http://img408.imageshack.us/img408/7060/fritzphotopreview3je3.jpg]

    [Blockierte Grafik: http://img476.imageshack.us/img476/7905/fritzphotopreview4xw3.jpg]

    Edit: Bildschirmausdrucke aktualisiert.

    Der erste „Rohentwurf“ steht schon. Man kann bereits Bilder laden, einen AviSynth-Script laden (und editieren), ein paar Einstellungen vornehmen (gewünschte Skalierung, JPG-Qualität etc.) und die Bilder (im Batchbetrieb) konvertieren lassen. Die Oberfläche ist die gleiche wie beim Fritz Framalyzer. Die Ergebnisse können sich schon mal sehen lassen.

    [Blockierte Grafik: http://img140.imageshack.us/img140/7458/94c8df3902510a40a32a137sv9.jpg]

    Hier ein Beispiel, dass mit Hilfe von Olympus Master 2 aus dem Rawformat erzeugt worden ist. Es handelt sich hierbei um ein JPG-Bild, dass direkt aus Olympus Master 2 mit den Standardeinstellungen erzeugt worden ist. Die EXIF-Informationen sind ebenfalls enthalten. Das Originalbild hat eine Größe von 3648x2736.

    Original >>

    Die entsprechenden Verkleinerungen (800x600) habe ich auch gleich beigefügt. Einmal mit IrfanView und einmal mit Vallen JPegger. Die Bilder wurden in der maximal möglichen JPG-Qualität abgespeichert.

    IrfanView (Lanczos-Filter ohne zusätzliche Nachschärfung)
    [Blockierte Grafik: http://img411.imageshack.us/img411/2523/p2240008irfanviewnurlannm8.jpg]

    IrfanView (Lanczos-Filter und "High Pass Sharpening")
    [Blockierte Grafik: http://img240.imageshack.us/img240/5670/p2240008irfanview0800x0vz1.jpg]

    Vallen JPegger
    [Blockierte Grafik: http://img465.imageshack.us/img465/3084/p2240008vallenjpegger08fm1.jpg]

    Das mit dem Farbraum ist mir schon klar. Wenn, dann muss der betreffende Filter auch RGB unterstützen. Prinzipiell würde das mit AviSynth schon alleine gehen, aber mit einer Benutzeroberfläche à la Fritz Framalyzer hätte man eben viel mehr Möglichkeiten, auch wäre es benutzerfreundlicher. Da ich in diesem Programm ja schon eine AviSynth-Unterstützung integriert habe – Bilder könne damit ja auch geladen werden - , wäre es ein Leichtes, auf Grundlage dieses Programms ein neues zu entwerfen.

    Das Programm soll dann auch eine ähnliche Oberfläche erhalten. Als erstes wählt der Benutzer die zu filternden Bilder aus, im nächsten Dialog wählt er dann einen entsprechenden (vorgefertigten) AviSynth-Script, den er nach Belieben ändern kann (sofern dies überhaupt notwendig ist), anschließend kann er dem Progamm noch ein paar spezifische Einstellungen mit auf den Weg geben (z. B. welches Dateiformat erzeugt werden soll etc.). Anschließend startet er die „Konvertierung“.

    Das Programm wird definitiv mehr sein, als eine bloße GUI. Auch wird man mit AviSynth nicht alles bewerkstelligen können.

    In einem ersten Schritt geht es mir zunächst nur um das Verkleinern und adäquate Nachschärfen. Das Thema Entrauschen wäre dann als nächstes dran (eigenes Script). Ich lade mal ein Originalbild (JPG-Bild, das aus einer Rawkonvertierung stammt) und die Verkleinerungen mit IrfanView und Vallen JPegger hoch, damit man mal einen Anhaltspunkt hat.

    Man kann einzelne Bilder laden, speichern und bearbeiten.
    Vielleicht interessant: http://forum.doom9.org/showthread.php?t=119831


    :daumen: Danke für den Link.

    Was für ne Idee hast du denn? Wenn's nur um die Bilder geht, d.h. du am Schluss wieder JPEGs oder haben willst macht wohl Batchprocessing von Grafikprogrammen mehr Sinn.


    Normalerweise benutze ich für solche Sachen ja IrfanView. Die Verkleinerung mit dem Lanczos-Filter und das homöopathische Nachschärfen mit dem kostenlos verfügbaren Adobe-Filter „High Pass Sharpening“ stellt für mich schon ein gewisses Optimum dar. Auch Batchverarbeitung ist möglich. Die Sache hat nur einen Hacken, bei der Batchverarbeitung kann ich nicht auf mein geliebtes „High Pass Sharpening“ zurückgreifen, sondern ich müsste hierzu den integrierten einfachen Schärfefilter verwenden. Bei anderen Tools wie „nSonic JPG-Compressor“ bin ich mit der erreichten Qualität nicht so zufrieden usw.

    Auf der Suche nach einem guten Bildbetrachter bin ich auf das Programm „Vallen JPegger“ gestoßen, welches mir Bilder der Größe 3648x2736 wesentlich schärfer und detaillierter auf den Bildschirm zaubert, als andere Bildbetrachter. Mit der Software lassen sich auch Bilder verkleinern. Dabei habe ich festgestellt, dass die Ergebnisse sehr nahe an mein bisheriges „Ideal“ mit IrfanView herankommen. Mehr noch, die Ergebnisse scheinen auch besser zu sein (mehr Schärfe und mehr Details). Auch Batchverarbeitung ist möglich. Der Haken hier ist allerdings, dass man keinerlei Einfluss auf den verwendeten Filter und den Grad der Nachschärfung hat. Die Bilder von „Vallen JPegger“ sind nämlich schon nahe an der Grenze zur Überschärfung.

    Kurzum, immer ist irgendetwas, was mich stört. :motz: Deswegen die Idee mit AviSynth. Zu AviSynth gibt es ja jede Menge Filter. Damit könnte man unter Umständen ein sehr mächtiges Tool zur Bildbearbeitung basteln. Wobei es mir in einem ersten Schritt nur um das Verkleinern und adäquate Nachschärfen geht. Mit ImageSource("$FileName", end=0) lassen sich z. B. ja einzelne Bilder laden. Da ich mit Fritz Framalyzer aber bereits ein Programm habe, das AviSynth-Scripte unterstützt, wäre so ein Tool sehr schnell gebastelt, dass meinen Ansprüchen gerecht wird.

    Deswegen meine Frage, inwieweit es überhaupt Sinn macht, mit AviSynth so was anzugehen. Das Verkleinern und Nachschärfen sollte ja kein Problem darstellen – hierzu gibt es genügend Filter in AviSynth. Die Ergebnisse sollten denen eines Grafikprogramms ja in nichts nachstehen. Beim Entrauschen geht’s im Grafikbereich dann aber schon los, wo es kostenpflichtig wird. Gute Entrauscher, wie z. B. Neat Image, kosten Geld. In AviSynth könnte man evtl. gleichwertige oder bessere Ergebnisse erzielen – und das kostenlos! Kurzum, bei AviSynth könnte man auf eine bewährte Filterlandschaft zurückgreifen. ;)