Noch was unklar? Dann in unserem Forum nachfragen
Zum Original-Thread / Zum Videoschnitt Allgemein-Forum

Infoseite // Chrominanz- und Luminanzwerte aus WMV und MPEG "auslesen"



Frage von eLcoMANdaNtE:


hallo ihr schlauen köpfe...
ich wusste nicht in welche kategorie meine frage passte, drum stelle ich sie hier.

ich suche nach einer möglichkeit die chrominanz- und luminanzwerte aus wmv und mpeg-files "auslesen" zu können. ich benötige diese werte für jeden einzelnen frame und als mittelwerte über alle frames eines clips?
wie komm ich da ran? gibts da ne kleine software bzw. wie könnte eine solche software arbeiten?

is wirklich dringend...

mfg eL

Space


Antwort von TheBubble:

Das käme einer Dekompression des Filmes gleich, bei dem lediglich keine abschließende Farbraumtranformation nach RGB durchgeführt wird.

Wenn es nur auf die Informationen über jeden Pixel im YUV Farbraum ankommt, ist es für Dich unter Umständen einfacher ein dekomprimiertes Bild im RGB Farbraum nehmen und es wieder in einen YUV-Farbraum zur weiteren Auswertung zu transformieren.

Space


Antwort von eLcoMANdaNtE:

danke für die antwort.
mir ist aber immernoch unklar wie das gehen soll? welchen decoder soll ich da am besten verwenden. ich möchte die luminanz- und chrominanz am besten in matrix-form haben, um sie z.b. mit matlab weiter zu verwenden.

ist ein bischen tricky, denke ich...ich bin aber im moment echt ratlos...

hier nochmal die zusammenfassung meines problems:

ich möchte die qualität von wmv-streams objektiv beurteilen. dazu verwende ich den fritzframalyzer, der mir MSE PSNR und euklidischen Abstand von einem referenz-clip zu dem gestreamten clip ausgibt. um sicher zu gehen das dieses analyseprogramm korrekte ergebnisse liefert, muss ich das durch ein messprogramm exemplarisch verifizierer. ich denke das funktioniert am besten über luminanz und chrominanz. wenn ich da falsch liegen sollte, klärt mich bitte auf. wer eine idee hat, dieses problem zu lösen, bitte melden!!!

ist wirklich dringend

mfg eL

Space


Antwort von TheBubble:

mir ist aber immernoch unklar wie das gehen soll? Du nimmst ein unkomprimiertes Bild im RGB-Frabraum und wandelst dieses in den YUV-Farbraum, wenn Du das Bild in diesem Farbraum untersuchen willst. Achtung: Es gibt mehere YUV-Varianten.

Du solltest bedenken, dass die Daten im YUV-Farbraum, wie sie meistens vom Codec abgelegt werden, in den Chrominanz-Anteilen eine geringere Auflösung besitzen. Die Art, wie Komponenten abgetastet und später rekonstruiert werden, kann sich zwischen verschiedenen Codecs ebenfalls unterscheiden (z.B. MPEG-1 gegenüber MPEG-2). Entweder berücksichtigst Du all dies (wenn Du die YUV-Daten direkt aus einem Dekompressor abgreifen willst), oder Du gehst den Zwischenschritt über ein RGB-Bild und nimmst eventuelle Rundungsfehler durch mehrfache Umwandlung in Kauf.

Du könntest auch ein externes Programm verwenden, um die zu untersuchende Videodatei in verlustlos gespeicherte (RGB)-Einzelbilder zu zerlegen (z.B. im PNG oder BMP Dateiformat).
ich denke das funktioniert am besten über luminanz und chrominanz. wenn ich da falsch liegen sollte, klärt mich bitte auf. Monitore arbeiten im RGB-Farbraum. Kameras nehmen auch RGB-Komponenten auf. Also warum nicht in diesem Farbraum berurteilen? Einen MSE zwischen zwei Bildern kannst Du auch im RGB-Farbraum berechnen.

Der MSE ist zwar geeignet, um die Differenz zwischen zwei Bildern zu bestimmen (und ggf. zu minimieren), aber die Ergebnisse entsprechen nicht immer den subjektiv wahrgenommenen Unterschieden. Ein Betrachter hat unter Umständen eine andere Wahrnehmung.
wer eine idee hat, dieses problem zu lösen, bitte melden!!! Wofür brauchst Du es denn?

Space


Antwort von eLcoMANdaNtE:

ich untersuche die qualität von streamingangeboten. dazu möchte ich den fritz framalyzer verwenden. der liefert mir für wmv-files mse, psnr und eukl. abstand. somit kann ich die bewertung objektiv gestalten.
ich habe dafür qualitativ hochwertiges referenzmaterial und dazu die entsprechenden gestreamten files.
um aber die ergebnisse verifizieren zu können, muss ich über ein kleines messprogramm an werte kommen, mit denen ich die gewonnenen psnr und mse bestätigen kann.

ich dachte eben das es am besten über die chrominanz und luminanz und deren veränderung gegenüber dem referenzmaterials laufen würde? avisynth schien mir als skripsprache am geeignetesten um an die werte zu kommen...

hast du da einen besseren vorschlag? das messprogramm muss unabhängig vom analyse-tool arbeiten...

mfg eL

Space


Antwort von TheBubble:

avisynth schien mir als skripsprache am geeignetesten um an die werte zu kommen... Kann man nehmen. Du brauchst dann noch einen Filter, der Dir die Werte (MSE, usw.) berechnet. So etwas kann man programmieren.

Letztendlich hast Du dann zwei unabhänige Messprogramme, deren Ergebnisse Du vergleichen kannst (und die hoffentlich gleich sind).

Space


Antwort von eLcoMANdaNtE:

du weiss aber nicht zufällig wie das geht? ich hab nämlich noch nicht viel ahnung von avisynth.
ich wollte aber vorher mal klären ob es da nicht schon ein plugin o.ä. gibt, um das rad nicht zweimal zu erfinden.

ich dachte das ein plugin die entsprechenden werte ausliest und matlab o.ä. dann mse usw. berechnen kann...oder lieg ich da falsch?

die frage ist nur, wie man so ein plugin/tool erstellt. wie gesagt, es dient ja im prinzip nur der absicherung der ergebnisse.

mfg eL

Space


Antwort von TheBubble:

du weiss aber nicht zufällig wie das geht? ich hab nämlich noch nicht viel ahnung von avisynth. Man kann für Avisynth Filter erstellen. Ob (und falls ja wie) man für Avisynth Filter erstellen kann, die zwei Videodatenströme als Eingabe akzeptieren, kann ich versuchen herauszufinden.
ich wollte aber vorher mal klären ob es da nicht schon ein plugin o.ä. gibt, um das rad nicht zweimal zu erfinden. Musst halt danach suchen. Vermutlich wird es ähnliches schon geben. Ob es Deine Wünsche erfüllt, musst Du herausfinden.
wie man so ein plugin/tool erstellt. Plugins (z.B. für Avisynth) werden in der Regel in C/C++ geschrieben.

Wenn es nur um Ergebnisse für einzelne Frames geht, dann exportiere doch zu vergleichende Einzelbilder aus den Streams mit geeigneter Software, lade diese mit Matlab und berechne die Werte.

Space


Antwort von eLcoMANdaNtE:

Ob (und falls ja wie) man für Avisynth Filter erstellen kann, die zwei Videodatenströme als Eingabe akzeptieren, kann ich versuchen herauszufinden. das wäre super! damit wäre mir sehr geholfen.
nach passenden plugins habe ich schon in diversen avisynth-plugin-sammlungen geschaut, aber nicht wirklich was gefunden. das kann natürlich auch an der manchmal sehr verwirrenden bezeichnung liegen *g*

macht es sinn den weg über die extraktion von einzelbildern zu gehen?
da würde sich doch sicher auch die frage stellen, wie man an die einzelnen werte kommt, damit matlab damit zurechtkommt...

mfg eL

Space



Space


Antwort von eLcoMANdaNtE:

ich habe grad ein plugin gefunden. es heisst "showpixelvalues" und könnte was sein.

so könnte man an die werte für yuv und rgb farbräume kommen.
ich probier das mal durch.

die beispiel-syntax spricht aber von *.avi geht das dann eigentlich auch für wmv?

LoadPlugin("ShowPixelValues.dll")
AVISource("Test.avi")
ShowPixelValues()
# Show the pixel values at the top left of the frame


mfg eL

Space


Antwort von TheBubble:

Das liefert Dir doch nur die Farbwerte für einen Pixel? (Ich kenne den Filter nicht.)

Wenn Du MSE, usw. halbwegs effizient berechnen willst, dann erstelle Dir oder suche Dir einen Filter, der die zwei Clips als Eingabe akzeptiert und für jedes Frame die Werte berechnet und ausgibt.

Alternativ wandle beide Clips in Einzelbilder und vergleiche diese paarweise mit einem Programm.

Space


Antwort von eLcoMANdaNtE:

du hast recht. aber man kommt doch an die YUV-werte ran. ich dachte das wäre nötig um mse usw. zu berechnen? bin ich da auf dem falschen dampfer?
Wenn Du MSE, usw. halbwegs effizient berechnen willst, dann erstelle Dir oder suche Dir einen Filter, der die zwei Clips als Eingabe akzeptiert und für jedes Frame die Werte berechnet und ausgibt. da liegt der hund begraben. ich habe keinen schimmer wie ich filter selbst erstelle...da bin ich wohl auf deine hilfe angewiesen.

mfg eL

Space


Antwort von TheBubble:

du hast recht. aber man kommt doch an die YUV-werte ran. ich dachte das wäre nötig um mse usw. zu berechnen? Den mittleren quadratischen Fehler kannst Du sowohl über Pixeldaten im YUV-Farbraum, als auch über Pixeldaten im RGB-Farbraum berechnen.

Was genau Du vergleichen willst, musst Du wissen. Wenn Du mit YUV arbeitest, musst Du zwei Dinge bedenken:
- Ein als YUV bezeichnetes Format entspricht nicht immer dem erwarteten YUV Format
- Die Qualität des angezeigten RGB-Bildes hängt auch von der Art des Upsamplings der U und V-Komponenten ab, wenn diese niedriger aufgelöst gespeichert wurden.

Ein paar Dinge würden mich interessieren:

Wofür benötigst Du einen Vergleich zwischen zwei Videodateien, also in welchem Zusammenhang möchtest Du Videoclips vergleichen, und was sind Deine Vorkenntnisse in dem Bereich?

Space


Antwort von eLcoMANdaNtE:

ich möchte die qualität von streamingangeboten vergleichen.
d.h. ich habe das ausgangsmaterial und möchte nun die qualität der streams von mehreren anbietern objektiv miteinander vergleichen.
ich weiss also wie das material ursprünglich ausschaut (liegt als mpeg2 auf dvd vor) und ich habe das material als stream (i.d.R. wmv).
ich möchte nun alle streaming-ergebnisse gegen das original-material vergleichen um eine aussage treffen zu können, welcher stream der qualitativ beste ist. dazu will ich mit dem framalyzer mse & co als qualitätsmaße berechnen lassen.
aber diese ergebnisse müssen abgesichert sein. das soll über "mein" messprogramm passieren.

wie genau die analyse-ergebnisse verifiziert werden können versuche ich grad herauszubekommen. ich dachte das funktioniert über die veränderung der chrominanz- und luminanzwerte und deren veränderung gegenüber dem referenzmaterial. deswegen yuv-farbraum.
vorkenntnisse sind nicht sehr umfangreich. ich versuche mich grad einzuarbeiten.

lass uns bitte über email kommunizieren. wäre mir lieber...übers forum ist es recht umständlich.

meine mail: dj-mos (at) gmx.de

danke

mfg eL

Space


Antwort von TheBubble:

Ich habe verstanden, dass Du Video-Streams untersuchen möchtest. Allerdings ist nicht ganz klar, ob es sich um echte Streams handelt (die unter Umständen dynamisch je nach Netzbelastung zwischen verschiedneen Qualitätsstufen wechseln) oder um vorbereitete Videodateien, die einfach während des Downloads bereits abgespielt werden (ich vermute letzteres).

Um die Ergebnisse des Tools zu überprüfen wird Dir nicht viel mehr übrigbleiben, als zu versuchen, die gleichen Werte mit den gleichen Berechnungsvorschriften mit einem anderen Tool zu ermitteln.

Space


Noch was unklar? Dann in unserem Forum nachfragen
Zum Original-Thread / Zum Videoschnitt Allgemein-Forum

Antworten zu ähnlichen Fragen //


Audiospur aus AVI-Video in MP3 oder WAV auslesen
Informationen aus Videodateien auslesen
Mpeg 2 zu Mpeg 2 oder Mpeg 4?
Konvertieren von WMV in MPEG
Tipp gesucht: MPEG-File in WMV
Kann Videodatei über Explorer nicht auslesen
DVD auslesen + bearbeiten
Infos über Videodateien auslesen
Zeitcode anhand DVD Kapiteln auslesen
Wie MiniDV-Video auslesen und als DVD brennen? :-)
NEXUS : Audio digital auslesen ?
DivX "auslesen"
Auslesen von Mini DV Kassetten auf DVDs
wmv-Video erstellen aus animated GIF
mpeg(NTSC) in mpeg(PAL) wandeln
Tonspur aus MPEG-Datei isolieren
MPEG aus defekter VCD isolieren
Screenshots aus MPEG-Dateien




slashCAM nutzt Cookies zur Optimierung des Angebots, auch Cookies Dritter. Die Speicherung von Cookies kann in den Browsereinstellungen unterbunden werden. Mehr Informationen erhalten Sie in unserer Datenschutzerklärung. Mehr Infos Verstanden!
RSS Suche YouTube Facebook Twitter slashCAM-Slash