Videoqualität objektiv bewerten

  • Hat jemand Erfahrungen mit programmen zur objektiven bewertung der qualität? wenn ja, lohnt es sich, das selbst auszuprobieren oder ist die bewertung total daneben?


    hier ein auschnitt von einem heise-test:
    "Neben kommerziellen Metriken gibt es inzwischen eine Vielzahl offener Ansätze, objektiv die Videoqualität zu bestimmen, ohne eine Horde Testseher um sich zu scharen. Everwickeds Video Quality Studio (siehe Soft-Link) unterstützt neben subjektiven Tests via „Double Stimulus Continuous Quality Scale Method“ auch PSNR, Feng Xiao’s Video Quality Metric (VQM) und den von Zhou Wang entwickelten Structual SIMilarity Index (SSIM). Im Unterschied zur VQM scheint sich SSIM neben PSNR als einfaches Mittel zur objektiven Qualitätsbewertung zu etablieren. Wie der Name andeutet, versucht sich diese Metrik von der MSE-Methode zu lösen und stattdessen eine strukturelle Bildanalyse durchzuführen. Details dazu finden Sie in [4]. Der Algorithmus analysiert die Helligkeits- und Chromakomponenten der Einzelbilder, berücksichtigt bei der Berechnung des SSIM = 0,8 x SSIMY + 0,1 x SSIMU + 0,1 x SSIMV, dass das menschliche Auge besser auf Helligkeitsunterschiede als auf Farbe anspricht und summiert die Einzelwerte, um einen mittleren SSIM (MSSIM) zu bilden.

    Für unsere SSIM-Auswertung verwendeten wir nicht das recht absturzfreudige Video Quality Studio, sondern Lefungus’ SSIM-Plug-in für AviSynth (siehe Soft-Link, Untenstehendes funktioniert unter der Annahme, dass SSIM.dll im „Plugin“-Verzeichnis von AviSynth liegt):

    testvideo=DirectShowSource(Testvideo, fps=25, audio=false).trim(Start,-Zahl)

    referenz=AviSource(Referenzdatei).trim(Start,-Zahl)

    StackVertical(SSIM(referenz, testvideo, "ergebnis.csv", "MSSIM.txt", lumimask=1), referenz)

    Das Skript öffnet das Testvideo (hier via DirectShow) sowie die Referenzdatei und stellt sie übereinander gestapelt dar. Die SSIM-Auswertung erfolgt während der Wiedergabe. Die Resultate landen kommasepariert in der Datei ergebnis.csv, der mittlere SSIM in der Datei MSSIM.txt. Details zu dem Parameter lumimask finden Sie unter [5]. „trim“ sorgt im Falle eines Falles dafür, dass ab Bild „Start“ die kommende „Zahl“ Bilder verglichen werden, denn auch SSIM arbeitet Bild für Bild und beschwert sich, wenn die Dateien nicht gleichlang sind. "
    http://www.heise.de/ct/05/10/146/default.shtml

    Sorry, ich bin irgendwie nicht auf das richtige Suchwort gekommen, hab immer nach "qualität objektiv (bewerten)" oder so gesucht und nichts gefunden, dabei hätte ein einfaches "ssim" gereicht.

  • Jede objektive Metrik, die bisher entwickelt wurde, hat einen wesentlichen Nachteil: Sie kann niemals mit deiner persönlichen subjektiven Einschätzung übereinstimmen - und bisher noch nicht einmal den Durchschnitt der subjektiven Einschätzungen vieler Testteilnehmer entscheidend annähern.

    Dass die PSNR-Metrik unvorteilhaft ist, läßt sich durch triviale Beispiele zeigen (die bei VQM und SSIM gezeigt wurden). Bisher als eine der subjektiv vorteilhaftesten Versionen, die als AviSynth-Plugin verfügabr sind, ist wohl SSIM in der von On2 modifizierten Variante (ob Lefungus die nachträglich wesentlich verbessert hat, oder bei der On2-Version beteiligt war, ist mir jetzt leider nicht exakt bekannt, da muss ich noch mal im englischen doom9-Forum forschen).

    Somit kann SSIM also auch keinen ABX-Test mit vielen Testpersonen überflüssig machen, aber für den Einzelanwender ist es sicher noch eine der bisher besten Methoden. Man sollte aber nie vergessen: Das Ausgangsmaterial wird immer als "perfekt" angenommen. Gefilterte Ergebnisse können subjektiv besser wirken, obwohl sie erhebliche Unterschiede aufweisen können, und von Metriken deshalb als objektiv schlechter (weil überhaupt abweichend) bewertet werden.

    Diese Metriken sind immer nur ein Maß für die Übereinstimmung, niemals ein Maß für die Schönheit!

    "Objektiv" kann man Qualität immer nur im Vergleich zu einer Referenz bewerten. Ist diese Referenz von subjektiv schlechter Qualität (z.B. verrauscht), dann kann eine bearbeitete Version subjektiv besser sein, aber objektiv eine schlechte Übereinstimmung mit dem Original aufweisen.

  • Zitat von LigH

    Diese Metriken sind immer nur ein Maß für die Übereinstimmung, niemals ein Maß für die Schönheit!


    Das steckt auch schon in dem Wörtchen "Metrik" - eine Metrik misst immer einen Abstand. Und dazu braucht man nunmal 2 Objekte. In diesen Fällen also immer eine Referenz und einen "bearbeiteten" Clip.

    [edit]
    OK, der Erklär-Bär war mit Editieren schneller als ich mit Tippen...

    Grüße!
    Trekkie2

  • Zitat von LigH

    ..."Objektiv" kann man Qualität immer nur im Vergleich zu einer Referenz bewerten. Ist diese Referenz von subjektiv schlechter Qualität (z.B. verrauscht), dann kann eine bearbeitete Version subjektiv besser sein, aber objektiv eine schlechte Übereinstimmung mit dem Original aufweisen.


    CHAPEAU, das hätte ich weder eleganter noch verständlicher formulieren können.

    Olnima

  • Es gibt auch sogenannte NR (non reference) Ansätze, aber mir ist keine erhältliche Software bekannt, die das macht.

    Bei allen Versuchen in diese Richtung, von denen ich weiß, beschränkt man sich aber auf einige wenige Aspekte der Wahrnehmung, bzw. auf bestimmte Typen von Kompressionsartefakten (z.B. Blöcke).

    Für einen umfassenderen Ansatz ist einfach die Wahrnehmung zu komplex und unerforscht.

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • Neben der SSIM-Metrik sollte die VIF-Metrik nicht unerwähnt bleiben. VIF steht für „Visual Information Fidelity“ und soll – laut den Entwicklern – noch zuverlässigere Ergebnisse liefern, als die SSIM-Metrik.

    Eigentlich wurde die SSIM-Metrik lediglich anhand von Graustufenbilder entwickelt und ausgiebig getestet. Die Ausweitung auf Farbe liegt bis dato lediglich als Theorie vor und wurde bis jetzt noch nicht ausgiebig getestet – so teilte es mir jedenfalls der Entwickler der SSIM-Metrik, Zhou Wang, mal in einer E-Mail mit, da ich gerade mit der Implementierung der SSIM-Metrik beschäftigt war. Bei der Analyse genügt es also vollkommen, wenn man nur den Luminanzanteil betrachtet. Die SSIM-Metrik gibt’s im Übrigen auch noch in einigen Spielvarianten, z. B. mit Gewichtung nach Helligkeit (dunklere Bereiche werden weniger bzw. gar nicht bewertet) oder mit Gewichtung aufgrund von Bewegungsvektoren (Frames mit viel Bewegung erhalten weniger Gewichtung).

  • Danke für die Informationen. :daumen:

    Der Vorteil von SSIM ist in dem Zusammenhang vor allem die sehr günstige Verfügbarkeit: Kostenlos als AviSynth-Plugin oder im Video Quality Studio. Sollten andere Metriken auch preiswert und einfach verfügbar sein, werden wir sie gern näher betrachten (was z.B. bei JNDmetrix definitiv nicht der Fall ist).

  • Vielleicht habe ich jetzt einen Denkfehler drin, aber kann man nicht das Problem verrauschter o.ä. Quellen relativ einfach umgehen, indem man diese Störungen erstmal per AviSynth filtert und dann die gefilterte Version als „Original“ an die Metrik übergibt?
    Dann blieben doch für den „Weniger gleich aber angenehmer anzuschauen“-Fall nur noch die psychovisuellen Features der Codecs übrig. Wobei ich keine Ahnung habe, wie stark die das Ergebnis beeinflussen.

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

  • Das kann man sicher tun.

    Es ist deine Entscheidung, was du als "Original" definierst. Davon unabhängig wird eine Metrik wie PSNR oder SSIM aber immer nur die Ähnlichkeit der Kopie zum "Original" angeben. In deinem Fall wäre das also die Verlustrate des Codecs. Wobei übrigens die Komprimierbarkeit und die Reproduzierbarkeit abhängig vom Character des Bildes ist - je weicher es ist, umso leichter läßt es sich möglichst exakt rekonstruieren.

  • @ Archimedes1

    Ist es möglich (vielleicht in einem extra Thread) näher auf die technischen Hintergründe von SSIM im Zusammenhang mit dem AviSynth Plugin einzugehen (Berechnungsgrundlage, Einstellungen, Interpratation des Ergebisses). Hab sowohl das "White Paper" von Zhou Wang als auch den englischen Doom9 Post gelesen, jedoch ist mein Englisch so schlecht das ich nur die Hälfte davon verstehe. :(
    Gibt es Informationen (auf deutsch) zu VIF, wie math./techn. Grundlage, etc. Hab mit Google auf die Schnelle nichts gefunden.
    Ein Vergleich (Pro-Contra) zw. SSIM und VIF würde mich ebenfalls interessieren.
    Ist VIF frei verfügbar?

    Danke

    EDIT: Hab dieses Dokument zu VIF gefunden. (schon wieder Englisch)

    PS: Ja, ich kenne die Diskussion um mathem. Videoqualitätsbewertungen. Aber Subjektivität lässt sich nun mal schlecht in Zahlen fassen. Trotzdem danke und respektiere ich Alle, die Videoqualitätstest machen. :daumen: Am Ende entscheidet man selbst, was einem gefällt (oder nicht).

  • Ok, kleiner (relativ unmathematischer) Überblick über SSIM:

    SSIM betrachtet einen Pixel, und eine gewichtete Umgebung davon (im avs Plugin ein Quadrat, im Originalpaper eine rotationssymmetrische Gaussverteilung).

    Diese Umgebung wird zwischen beiden Clips verglichen. Zuerst wird die durchschnittliche Helligkeit verglichen. Der Vergleich liefert eine Zahl zwischen 1 (gleichhell) und 0 (total unterschiedlich hell).

    Dann werden beide Umgebungen auf die gleiche Helligkeit gebracht.

    Diese korrigierten Umgebungen werden auf ihren Kontrast untersucht. Wieder eine Wertung zwischen 1 (identisch) und 0 (unterschiedlich)

    Dann werden die beiden Bildteile auf den selben Kontrast geregelt.

    Die letzte Wertung ("Struktur") besteht aus einer mathematischen Operation namens Skalarprodukt. Es ist jetzt etwas schwierig zu beschreiben, was genau dabei verglichen wird. (Ausser dem Winkel zwischen den normierten Vektoren im 121-dimensionalen Vektorraum, was aber nicht so sonderlich anschaulich ist)

    Aber "Struktur" trifft es ganz gut. Wenn beide Bildteile an den gleichen Stellen hell bzw. dunkel sind, dann gibt das eine gute Wertung.

    Die drei Wertungen werden verrechnet und ergeben eine finale Wertung zwischen 1 (absolut identisch) und 0 (totaler Mist)

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • Hallo,

    ich finde Deine Beschreibung gut, allerdings meinst Du hier:

    Zitat von Kopernikus

    im Originalpaper eine rotationssymmetrische Gaussverteilung


    vermutlich einen Gauss-Kern. Wers nicht kennt, kann mit beidem nix anfangen und wer weiß, was das ist, wird auch über den Kern nicht stolpern. Daher ist wohl beides gleich anschaulich.

    Für die Sache mit dem Skalarprodukt fehlt mir grade die Zeit :cool:

    Grüße!
    Trekkie2

  • Ok, Gaussverteilung ist das falsche Wort.

    Zitat:

    Zitat

    In this paper, we use an 11 x 11 circularsymmetric
    Gaussian weighting function

    Das bedeutet im Wesentlichen, dass Fehler, die in Pixeln auftreten, die vom aktuell betrachteten Pixel weiter entfernt sind, weniger stark in die Bewertung einfliessen.

    Ist das ein Gauss-Kern?

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • Zitat von Kopernikus

    Ist das ein Gauss-Kern?


    Ja, eine Gewichtungsfunktion ist ein Kern. Wollte ansonsten auch nicht an Deiner guten anschaulichen Beschreibung rummeckern. Habs ja nur überflogen und keine Ahnung davon, aber das ist mir halt grade aufgefallen.

    Grüße!
    Trekkie2

  • Ich muss ehrlich gestehen, dass ich die Publikation "Image Quality Assessment: From Error Visibility to Structural Similarity" von Zhou Wang nicht hundertprozentig verstanden habe – mir ging es eher um die korrekte Implementierung der SSIM-Metrik. Speziell die Erklärung zur "11 x 11 circular-symmetric Gaussian weighting function" ist mir noch nicht ganz klar. Alle mir bekannten Programme dürften allerdings mit den sog. „Sliding Windows“ arbeiten, das sind 8 x 8 große Fenster, die alle möglichen Positionen innerhalb eines Bildes einnehmen, und für jedes dieser Fenster wird der dazugehörige SSIM-Wert ermittelt. Aus der Gesamtsumme aller ermittelten SSIM-Werte wird dann der Durchschnittswert für das gesamte Bild ermittelt.

    Soweit ich das getestet habe, ist der SSIM-Wert bei Video Quality Studio (VQS) ein gewichteter Wert (nach Helligkeit). Die Ergebnisse stimmen exakt mit denen von Fritz Framalyzer überein (Q in Y). MSU Video Quality Measurement Tool verwendet keine Gewichtung bei der Berechnung des SSIM-Wertes.

    Informationen zu VIF gibt es übrgigens auch hier:
    http://live.ece.utexas.edu/research/quality/VIF.htm

  • Um mal ein paar mehr oder weniger verbreitete Umgebungen und Wichtungen grafisch zu demonstrieren:

    square | diamond | square-weighted | diamond-weighted | gaussian-weighted

    Je dunkler der "Pixel", umso mehr Einfluss hat er auf das Gesamtergebnis; dass im Allgemeinen durch die Summe der Wichtungswerte dividiert wird, um eine Normalisierung zu erreichen, blieb hier unbeachtet.
    __

    @ Archimedes1:

    Es handelt sich auch hier um "sliding windows" (sich bewegende "Fenster", die die Umgebung des aktuellen Bildpunktes betrachten; hier eben mit der Größe 11x11), nur dass die Pixel im Fenster der Umgebung des aktuellen Pixels eben nicht gleichwertig beachtet werden, sondern weiter entfernte Pixel weniger stark in das Ergebnis eingehen. Und die 2D-Gauß-Funktion bildet eben eine "Glockenkurve", die sich aus der "Gaußschen Normalverteilung" ergibt, die aus der Wahrscheinlichkeitsrechnung bekannt ist.

    Einfachere Wichtungsumgebungen wären leichter bzw. schneller zu berechnen, vor allem weil man (bei "diamond") unter Umständen schon einige Pixel von vorn herein weglassen könnte. Bei einer so genauen Wichtungsumgebung wie der gaußschen jedoch muss zwangsweise ein höherer Aufwand getrieben werden.

  • Danke auch noch mal von meiner Seite für die Erläuterungen. Ich wollte jetzt zwar noch ein paar Anmerkungen zum Umgang mit Metriken aus eigener Erfahrung schreiben, aber da dies nicht mit ein paar Sätzen abgetan ist, reiche ich das evtl. ein anderes Mal nach. ;)

  • Guten Abend die Herren,

    ich verstehe das mit diesem "weight" noch nicht ganz, bzw. wie sich das final auf meine Ergebnisse auswirkt. Ich habe folgendes Script:

    Zitat von Code

    a=AVISource("referenz.avi").converttoyv12()
    b=FFVideoSource("test.mp4").converttoyv12()
    return ssim(a,b,"ergebnis.csv","averageSSIM.txt", lumimask=1)


    Nun habe ich damit bereits ein Video getestet und in meiner CSV-Datei stehen dann zig Werte, die hinter dem SSIM-Wert noch ein "1.000000" stehen haben, was irgendwas mit diesem weight zu tun haben muss. Das habe ich bisher einfach ignoriert.

    So sah das ganze aus:

    Zitat

    0.981772,1.000000

    Nun habe ich allerdings ein Video (das sehr unruhig ist und einen sehr hohen Kontrast besitzt) und jetzt habe ich bei keinem Frame mehr dieses "1.000000" sondern nur noch irgendwas mit "0.999xxx".
    Nun sieht es so aus:

    Zitat

    0.986346,0.999356


    Wenn ich die lumimask ausschalte (lumimask=0) ist der Wert letztlich in der CSV-Datei auch verschwunden (dann steht dort nur noch 0.986346), aber laut diesem Thread hat der weight-Faktor ja offenbar einen Sinn. Nur verstehe ich das mit der Gewichtung nicht ganz. Was sagt mir denn der Wert "0.999xxx" über den eigentlichen SSIM-Wert aus? Muss ich das damit multiplizieren oder dividieren, um den "eigentlichen" Index zu errechnen?

    Danke und Gruß,
    Stefano

Jetzt mitmachen!

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