Ab und zu kommt es mal vor, wenn ich so durch ältere *.mpg-Videos schaue, dass ich ein völlig verzerrtes Bild habe, wenn ich ffdshow zum Decodieren für MPC-HC verwende. Mit dem MPC-internen MPEG1-Videodecoder oder im VLC passiert das nicht.
Eine Analyse mit MediaInfo zeigte mir etwas merkwürdige Werte für die Seitenverhältnisse. Also habe ich mir mal Zeit genommen, ein MPEG1-Video zu erzeugen, seine Seitenverhältnis-Bitfelder in mehreren Kopien zu patchen, und mir das Ergebnis mal genauer anzuschauen.
Nun ja ... das Ergebnis lässt mich an so einigem zweifeln. Unter anderem, ob MediaInfo da wirklich korrekte Werte angibt. Aber auch, was eigentlich zwischen ffdshow und MPC-HC passiert, dass im Ergebnis das Video so extrem und vor allem unsinnig verzerrt wird.
In der MPEG1-Video Spezifikation (ISO/IEC 11172-2) findet man je nach Quelle und Version unter anderem die folgende "Tabelle":
ZitatThe pel aspect ratio does not give the shape directly, but is an index to the following look up table:
Code Alles anzeigenCODE HEIGHT/WIDTH COMMENT 0000 undefined Forbidden 0001 1.0 square pels 0010 0.6735 0011 0.7031 16:9 625-line 0100 0.7615 0101 0.8055 0110 0.8437 16:9 525-line 0111 0.8935 [COLOR='#800080']1000¹ 0.9157 CCIR601, 625line[/COLOR] [COLOR='#008080']1000² 0.9375 720x576 at 4:3 = 0.9375[/COLOR] 1001 0.9815 1010 1.0255 1011 1.0695 [COLOR='#800080']1100¹ 1.0950 CCIR601, 525line[/COLOR] [COLOR='#008080']1100² 1.1250 720x485 at 4:3 = 1.1134[/COLOR] 1101 1.1575 1110 1.2015 1111 undefined reserved
Table 2-D.2 Pixel Aspect Ratio
¹ = 29.12.2004 23:25 2-11172 DISx
² = ohne Datum im Header; PDF: /CreationDate (D:20001221154217)
Ich bitte zu beachten: Es wird grundsätzlich von Pixel Aspect Ratio gesprochen; verglichen mit der MPEG2-Video-Spezifikation (ISO/IEC 13818-2) und zur Vermeidung von Unklarheiten würde man das heute bevorzugt als Sampel Aspect Ratio (SAR) bezeichnen. Es geht also grundsätzlich um Stauchungs- bzw. Entzerrungs-Faktoren.
Die Unterschiede zwischen den zwei Spezifikationen sind jetzt nicht das, was ich meine. Es geht um viel erheblichere Unterschiede. Hier nur mal zwei Screenshots zur Demonstration:
[Blockierte Grafik: http://www.ligh.de/pics/MPEG1/PAL4MPEG1_SAR07615.window.png]
[Blockierte Grafik: http://www.ligh.de/pics/MPEG1/PAL4MPEG1_SAR08437.window.png]
Es ist mir schleierhaft, welche Seitenverhältnisse ffdshow da zur Darstellung an den Renderer sendet. Offensichtlich wird die Skalierung aber dem Renderer überlassen, denn alle internen Screenshots des MPC-HC sind unabhängig vom angezeigten Seitenverhältnis im Grunde identisch, müssen also vom Decoder stammen, bevor der Renderer den Inhalt falsch skaliert. Und das passiert bei jedem Renderer außer DIB so, von Overlay über VMR 7 und 9 sowie EVR bis zu madVR.
So etwas fällt mir übrigens schon seit Jahren auf. Ich komme nur jetzt erst dazu, mal ordentliche Vergleiche anzustellen, weil ich dafür erst mal brauchbares Vergleichsmaterial erstellen musste.
Wer ein wenig Zeit hat, möge doch mal bitte kurz testen, ob sein Lieblings-DirectShow-Videoplayer mit ffdshow als Decoder ebenso reagiert. Wenn ich ein paar Bestätigungen bekomme, werde ich das dann ins englische Forum übertragen.
7zip-Archiv mit Testdateien und Ergebnissen (≈3 MB); siehe auch Tabelle im enthaltenen PDF