HQ-Encoding: x264 im Vergleich mit Xvid CQ2

  • Edit: Achtung: Wg. der Entwicklungen rund um VAQ und PsyRD/PsyTrellis ist dieser Test mehr oder weniger nutzlos geworden.

    Wir wissen ja alle, dass x264 gerne das Bild glättet, was für ein HQ-Encoding nicht unbedingt wünschenswert ist. Auch bekannt ist, dass man x264 dazu überreden kann, das Glätten sein zu lassen. Man muss nur eine passende Konfiguration finden.

    Die Frage dieses Tests ist:
    Welche x264-Optionen sind sinnvoll (CRF vorausgesetzt), um ohne wesentlich größere Datei ein ähnliches Detailniveau wie ein Xvid-HQ-Referenzvideo (CQ 2) zu erreichen?

    Warum nicht die DVD als Referenz? Weil ich herausfinden möchte, wie sich die beiden Encoder gegeneinander schlagen. Situation wäre z.B. die Wahl eines Encoders beim HQ-Encoding für die Filmsammlung-Festplatte.

    Screenshots liegen in den Posting-Anhängen. Links zu den wichtigsten Encodings auch in den jeweiligen Postings. Alle Screenshots sind 95%-Jpegs. Der Unterschied zu verlustlosem PNG ist gerade so erkennbar, aber ändert nichts Wesentliches.


    Inhaltsübersicht


    Testaufbau

    Software
    Material war PAL, 16:9, progressives MPEG-2 mit hoher Bitrate, wenig Artefakten und gut erhaltenen Details.

    • Xvid 1.2 25.07.2007 celtic_druid, Encraw 31.08.2007
    • x264 rev 682 Cef
    • DGMPGDec 1.4.9
    • AviSynth 2.5.7
    Code
    LoadPlugin("C:\Encoding\DGMPGDec\dgdecode.dll")
    MPEG2Source("E:\Video\Test\src\src.d2v")
    Crop(0,24,-0,-24)
    trim(101600,102204)  # für Sample 1, oder
    trim(2700,3304)      # für Sample 2

    Hardware
    – Pentium M (Dothan) 1,6 GHz, ein Kern
    – 1280 MB RAM
    – 15,4"-Widescreen-TFT 1680×1050

    Samples
    Sample 1 ist ein Dialog. Fast vollständig statisch mit bildfüllenden Gesichtern.
    Sample 2 ist eine Szene beim Jogging. Schnell vorbeifliegender Hintergrund und regelmäßig bewegter Vordergrund – wie das eben so ist beim Jogging.

    Xvid-Konfiguration
    xvid_encraw.exe -i "src.avs" -type 2 -mkv "S1 Xvid (Referenz).mkv" -par 4 -cq 2 -bquant_ratio 100 -bquant_offset 100 -qtype 1 -qmatrix "C:\Encoding\_Matrizen\Heini MR.xcm" -qpel -vhqmode 1 -bvhq -notrellis -zones 0,w,1,O -nothreadedinput -progress 50

    Über Details kann man sich hier sicher streiten, v.a. denke ich dabei an die Matrix und QPel. Zwar vergrößert QPel oft das Ergebnis, aber ich mag den »körnigeren« Look. U.a. aus einem ähnlichen Grund bin ich Fan der Heini MR. Es geht dabei nicht um Nähe zur DVD im Sinn von Transparenz! Beim Anschauen muss es ähnlich gut und detailliert wirken wie die DVD: Placebo-Effekte ausdrücklich erlaubt.
    Davon abgesehen ist das meine aktuelle Standard-Xvid-Konfig. Und ganz uneigennützig ist der Test halt nicht. ;)

    Genauigkeit der Tabellenwerte
    Hängt euch bitte nicht an Kommastellen auf, besonders nicht bei der Geschwindigkeit. Denn ich habe nicht immer absolut darauf geachtet, den Rechner beim Encoding in Ruhe zu lassen. Denkt euch für die Geschwindigkeit besser Kategorien wie »halb so schnell« oder »ungefähr gleich«.

    Dateien

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

    Einmal editiert, zuletzt von Brother John (5. Oktober 2008 um 11:26)

  • Sample 1 (wenig Bewegung)

    Download der wichtigen Samples B00, C00, Xvid (27 MB):
    http://www.remixshare.com/download.php?f…0caabc1-3735053


    Testverlauf (Test ohne CQM)

    x264 A00:
    x264.exe --no-ssim --no-psnr --progress --sar 16:11 --bframes 16 --b-pyramid --direct temporal --bime --ref 4 --partitions all --8x8dct --me hex --subme 5 --deblock 0:0 --aq-strength 0.0 --crf 18 -o "S1 x264.mkv" "src.avs"
    <table style="text-align:right" border="1" cellpadding="5" cellspacing="0"><tr><th>&nbsp;</th><th><b>KByte</b></th><th><b>Größe %</b></th><th><b>fps</b></th><th><b>Rel. Zeit</b></th><th align="left"><b>CLI vgl. zu A00, Notizen</b></th></tr><tr><th><b>Xvid</b></th> <td>7252</td><td>100</td><td>10,0</td><td>1,0</td> <td align="left">Referenzwert. Körniger Look, hochdetailliert, streckenweise leichtes Makroblock-Rauschen im Hintergrund.</td></tr><tr><th><b>x264&nbsp;A00</b></th> <td>5651</td><td>78</td><td>5,9</td><td>1,7</td> <td align="left">deutlich detailärmer, deutlich blockiger</td></tr><tr><th><b>x264&nbsp;A01</b></th> <td>7730</td><td>107</td><td>5,3</td><td>1,9</td> <td align="left">--aq-strength 0.4<br>besser als A00, Blocks fast weg, weiterhin deutlich schlechter als Xvid</td></tr><tr><th><b>x264&nbsp;A02</b></th> <td>10847</td><td>150</td><td>5,1</td><td>2,0</td> <td align="left">--deadzone-inter 2 --deadzone-intra 4<br>Details etwas schlechter als Xvid</td></tr><tr>
    <th><b>x264&nbsp;A03</b></th> <td>13033</td><td>180</td><td>4,8</td><td>2,1</td> <td align="left">--aq-strength 0.4 --deadzone-inter 2 --deadzone-intra 4<br>Details besser als A02, einen Tick unter Xvid. Blockrauschen weniger als Xvid --&gt; insgesamt sehr runder Gesamteindruck.</td></tr><tr><th><b>x264&nbsp;A04</b></th> <td>13235</td><td>183</td><td>4,8</td><td>2,1</td> <td align="left">--aq-strength 0.4 --deadzone-inter 2 --deadzone-intra 4 --no-deblock<br>In Sachen Details und Blockrauschen praktisch transparent zu Xvid.</td></tr><tr><th><b>x264&nbsp;A05</b></th> <td>11681</td><td>161</td><td>5,0</td><td>2,0</td> <td align="left">--deadzone-inter 1 --deadzone-intra 1<br>wie A02</td></tr><tr><th><b>x264&nbsp;A06</b></th> <td>20178</td><td>278</td><td>4,4</td><td>2,3</td> <td align="left">--aq-strength 1.1 --deadzone-inter 2 --deadzone-intra 4<br>wie A04, aber weniger Blockrauschen.</td></tr></table>
    Am Ende zählt der Gesamteindruck, deswegen bleibe ich für die Größenreduzierungsrunde im Wesentlichen bei A03, jedoch mit AQ 0.5.

    x264 B00:
    x264.exe --no-ssim --no-psnr --progress --sar 16:11 --bframes 16 --b-pyramid --direct temporal --bime --ref 4 --partitions all --8x8dct --me hex --subme 5 --deblock 0:0 --aq-strength 0.5 --deadzone-inter 2 --deadzone-intra 4 --crf 18 -o "S1 x264.mkv" "src.avs"
    <table style="text-align:right" border="1" cellpadding="5" cellspacing="0"><tr><th>&nbsp;</th><th><b>KByte</b></th><th><b>Größe %</b></th><th><b>fps</b></th><th><b>Rel. Zeit</b></th><th align="left"><b>CLI vgl. zu B00, Notizen</b></th></tr><tr><th><b>x264&nbsp;B00</b></th> <td>13832</td><td>191</td><td>4,7</td><td>2,1</td> <td align="left">Eine Ecke besser als A03.</td></tr><tr><th><b>x264&nbsp;B01</b></th> <td>13826</td><td>191</td><td>3,8</td><td>2,6</td> <td align="left">--me umh<br>wie B00</td></tr><tr><th><b>x264&nbsp;B02</b></th> <td>13276</td><td>183</td><td>3,1</td><td>3,2</td> <td align="left">--subme 7<br>wie B00</td></tr><tr><th><b>x264&nbsp;B03</b></th> <td>13836</td><td>191</td><td>3,9</td><td>2,6</td> <td align="left">--ref 8<br>wie B00</td></tr><tr><th><b>x264&nbsp;B04</b></th> <td>9936</td><td>137</td><td>5,0</td><td>2,0</td> <td align="left">--crf 20<br>etwas schlechter als B00</td></tr><tr><th><b>x264&nbsp;B05</b></th> <td>9630</td><td>133</td><td>1,3</td><td>7,7</td>
    <td align="left">--crf 20 --me esa --subme 7 --deblock -2:-4<br>wie B00</td></tr><tr><th><b>x264&nbsp;B06</b></th> <td>9624</td><td>133</td><td>3,4</td><td>2,9</td> <td align="left">--crf 20 --subme 7 --deblock -2:-4<br>wie B00</td></tr><tr><th><b>x264&nbsp;B07</b></th> <td>10317</td><td>142</td><td>5,0</td><td>2,0</td> <td align="left">--crf 20 --deblock -2:-4<br>wie B00</td></tr><tr><th><b>x264&nbsp;B08</b></th> <td>6555</td><td>90</td><td>3,2</td><td>3,1</td> <td align="left">--crf 20 --subme 7 --deblock -2:-4 --b-rdo<br>ähnlich gut wie B00, vielleicht einen Tick schlechter.</td></tr><tr><th><b>x264&nbsp;B09</b></th> <td>9161</td><td>126</td><td>3,5</td><td>2,9</td> <td align="left">--crf 20 --subme 7 --deblock -2:-4 --deadzone-inter 4<br>wie B00</td></tr></table>
    Sieht so aus, als wäre B08 ein heißer Kandidat für den Sieg. Deswegen B08 = C00 und mal schauen, was sich noch optimieren lässt.

    x264 C00:
    x264.exe --no-ssim --no-psnr --progress --sar 16:11 --bframes 16 --b-pyramid --direct temporal --bime --b-rdo --ref 4 --partitions all --8x8dct --me hex --subme 7 --deblock -2:-4 --aq-strength 0.5 --deadzone-inter 2 --deadzone-intra 4 --crf 20 -o "S1 x264 %nr%.mkv" "src.avs"

    <table style="text-align:right" border="1" cellpadding="5" cellspacing="0"><tr><th>&nbsp;</th><th><b>KByte</b></th><th><b>Größe %</b></th><th><b>fps</b></th><th><b>Rel. Zeit</b></th><th align="left"><b>CLI vgl. zu C00, Notizen</b></th></tr><tr><th><b>x264&nbsp;C00</b></th> <td>6555</td><td>90</td><td>3,2</td><td>3,1</td> <td align="left">gleiche Konfig wie B08</td></tr><tr><th><b>x264&nbsp;C01</b></th> <td>6383</td><td>88</td><td>3,3</td><td>3,0</td> <td align="left">--deadzone-inter 4<br>ca. wie C00</td></tr><tr><th><b>x264&nbsp;C02</b></th> <td>6588</td><td>91</td><td>3,2</td><td>3,1</td> <td align="left">--deadzone-inter 4 --no-dct-decimate<br>wie C00</td></tr><tr><th><b>x264&nbsp;C03</b></th> <td>6618</td><td>91</td><td>3,4</td><td>2,9</td> <td align="left">--partitions p8x8,b8x8,i8x8<br>Kommt mir nach viel hin und her vergleichen einen winzigen Tick schlechter als C00 vor.</td></tr><tr><th><b>x264&nbsp;C04</b></th> <td>7112</td><td>98</td><td>3,2</td><td>3,1</td> <td align="left">--aq-strength 0.6 --deadzone-inter 4<br>ca. wie C00</td></tr><tr><th><b>x264&nbsp;C05</b></th><td>6603</td><td>91</td><td>3,4</td><td>2,9</td> <td align="left">--ref 2<br>wie C00</td></tr><tr><th><b>x264&nbsp;C06</b></th> <td>6541</td><td>90</td><td>3,3</td><td>3,0</td> <td align="left">--no-fast-pskip<br>ca. wie C00</td></tr></table>
    Ok, soweit. Ich denke es lässt sich sagen, dass keine riesigen qualitativen Änderungen mehr zu erwarten sind. Vielleicht lässt sich an der Größe noch drehen (CRF hoch, und dafür AQ höher?), aber das Ziel »nicht wesentlich größer als Xvid« ist einwandfrei erreicht.


    Auswertung

    Das war ja interessant :) und mit einigen erwarteten und weniger erwarteten Ergebnissen. Dass AQ und Deadzones eine zentrale Rolle spielen, war mir klar. Dass B-RDO gar nicht bügelt, hat mich überrascht. Möglich, dass hier Deadzones/AQ den glättenden Effekt wieder vollständig kompensieren.

    Insgesamt fällt mir auf: Bei Xvid hat das Bild eine eher statische Körnigkeit, bei x264 ist’s mehr ein bewegtes Grieseln. Deswegen sieht x264 in den Screenshots meistens schlechter aus als bei lfd. Video. Welcher Effekt mir besser gefällt, lässt sich schwer sagen. Tatsache ist jedenfalls: Aus einem Meter Abstand schauen beide Codecs verdammt gut aus.

    Aus der Nähe betrachtet ist x264 weniger körnig als Xvid und hat doch eine Ecke weniger Details. Das soll nicht heißen, dass eine klare Entscheidung für den einen oder anderen Codec so einfach oder überhaupt möglich wäre.

    Bevor jetzt einer wilde pauschale Schlüsse zieht: ich habe hier eine 605 Frames lange, extrem statische und detaillierte Szene getestet. Bei kompletten Filmen und/oder wenn’s bewegungsmäßig schwer zur Sache geht, können die Ergebnisse ohne Weiteres vollkommen anders aussehen.

  • Sample 2 (viel Bewegung)

    Download der wichtigen Samples B00, C00, Xvid (15 MB):
    http://www.remixshare.com/download.php?f…9ba71d5-8549051
    Samples sind gekürzt, sonst hätte ich ewig fürs Hochladen gebraucht.


    Testverlauf (Test ohne CQM)

    Aus den lfd. Videos etwas zu schließen, ist extrem hart. Insgesamt kann ich mit Konzentration in manchen halbwegs statischen Hintergrundbereichen ein geringeres Detailniveau von x264 im Vergleich zu Xvid feststellen. Ganz am Anfang der neblige Hintergrund ist so eine Stelle. Die x264-Konfigs untereinander zu vergleichen, bringt nichts. Ich sehe schlicht und einfach keinen Unterschied.

    <table style="text-align:right" border="1" cellpadding="5" cellspacing="0"><tr><th>&nbsp;</th><th><b>KByte</b></th><th><b>Größe %</b></th><th><b>fps</b></th><th><b>Rel. Zeit</b></th><th align="left"><b>CLI vgl. zu A00, Notizen</b></th></tr><tr><th><b>Xvid</b></th> <td>23574</td><td>100</td><td>7,6</td><td>1,0</td> <td align="left">Referenzwert.</td></tr><tr><th><b>x264&nbsp;A00</b></th><td>13010</td><td>55</td><td>4,4</td><td>1,7</td> <td align="left">Konfig wie bei Sample 1 A00</td></tr><tr><th><b>x264&nbsp;A01</b></th> <td>13845</td><td>59</td><td>4,3</td><td>1,7</td> <td align="left">--aq-strength 0.4</td></tr><tr><th><b>x264&nbsp;A02</b></th> <td>16456</td><td>70</td><td>4,3</td><td>1,7</td> <td align="left">--deadzone-inter 2 --deadzone-intra 4</td></tr><tr><th><b>x264&nbsp;A03</b></th> <td>17457</td><td>74</td><td>4,0</td><td>1,9</td> <td align="left">--aq-strength 0.4 --deadzone-inter 2 --deadzone-intra 4</td></tr><tr><th><b>x264&nbsp;A04</b></th> <td>17539</td><td>74</td><td>4,2</td><td>1,8</td><td align="left">--aq-strength 0.4 --deadzone-inter 2 --deadzone-intra 4 --no-deblock</td></tr><tr><th><b>x264&nbsp;A05</b></th> <td>17439</td><td>74</td><td>4,2</td><td>1,8</td> <td align="left">--deadzone-inter 1 --deadzone-intra 1</td></tr><tr><th><b>x264&nbsp;A06</b></th> <td>21059</td><td>89</td><td>3,9</td><td>1,9</td> <td align="left">--aq-strength 1.1 --deadzone-inter 2 --deadzone-intra 4</td></tr></table><table style="text-align:right" border="1" cellpadding="5" cellspacing="0"><tr><th>&nbsp;</th><th><b>KByte</b></th><th><b>Größe %</b></th><th><b>fps</b></th><th><b>Rel. Zeit</b></th><th align="left"><b>CLI vgl. zu B00, Notizen</b></th></tr><tr><th><b>x264&nbsp;B00</b></th> <td>17866</td><td>76</td><td>4,1</td><td>1,9</td> <td align="left">&nbsp;</td></tr><tr><th><b>x264&nbsp;B01</b></th> <td>17812</td><td>76</td><td>3,0</td><td>2,5</td> <td align="left">--me umh</td></tr><tr><th><b>x264&nbsp;B02</b></th><td>17956</td><td>76</td><td>2,2</td><td>3,5</td> <td align="left">--subme 7</td></tr><tr><th><b>x264&nbsp;B03</b></th> <td>17773</td><td>75</td><td>3,4</td><td>2,2</td> <td align="left">--ref 8</td></tr><tr><th><b>x264&nbsp;B04</b></th> <td>13968</td><td>59</td><td>4,4</td><td>1,7</td> <td align="left">--crf 20</td></tr><tr><th><b>x264&nbsp;B05</b></th> <td>14211</td><td>60</td><td>1,1</td><td>6,9</td> <td align="left">--crf 20 --me esa --subme 7 --deblock -2:-4</td></tr><tr><th><b>x264&nbsp;B06</b></th> <td>14351</td><td>61</td><td>2,4</td><td>3,2</td> <td align="left">--crf 20 --subme 7 --deblock -2:-4</td></tr><tr><th><b>x264&nbsp;B07</b></th> <td>14043</td><td>60</td><td>4,4</td><td>1,7</td> <td align="left">--crf 20 --deblock -2:-4</td></tr><tr><th><b>x264&nbsp;B08</b></th> <td>14256</td><td>60</td><td>2,3</td><td>3,3</td> <td align="left">--crf 20 --subme 7 --deblock -2:-4 --b-rdo</td></tr><tr><th><b>x264&nbsp;B09</b></th> <td>14068</td><td>60</td><td>2,3</td><td>3,3</td>
    <td align="left">--crf 20 --subme 7 --deblock -2:-4 --deadzone-inter 4</td></tr></table><table style="text-align:right" border="1" cellpadding="5" cellspacing="0"><tr><th>&nbsp;</th><th><b>KByte</b></th><th><b>Größe %</b></th><th><b>fps</b></th><th><b>Rel. Zeit</b></th><th align="left"><b>CLI vgl. zu C00, Notizen</b></th></tr><tr><th><b>x264&nbsp;C00</b></th> <td>14256</td><td>60</td><td>2,3</td><td>3,3</td> <td align="left">gleiche Konfig wie B08</td></tr><tr><th><b>x264&nbsp;C01</b></th> <td>13977</td><td>60</td><td>2,3</td><td>3,3</td> <td align="left">--deadzone-inter 4</td></tr><tr><th><b>x264&nbsp;C02</b></th> <td>14072</td><td>60</td><td>2,4</td><td>3,2</td> <td align="left">--deadzone-inter 4 --no-dct-decimate</td></tr><tr><th><b>x264&nbsp;C03</b></th> <td>14050</td><td>60</td><td>2,7</td><td>2,8</td> <td align="left">--partitions p8x8,b8x8,i8x8</td></tr><tr><th><b>x264&nbsp;C04</b></th>
    <td>14420</td><td>61</td><td>2,3</td><td>3,3</td> <td align="left">--aq-strength 0.6 --deadzone-inter 4</td></tr><tr><th><b>x264&nbsp;C05</b></th> <td>14263</td><td>61</td><td>2,5</td><td>3,0</td> <td align="left">--ref 2</td></tr><tr><th><b>x264&nbsp;C06</b></th> <td>14256</td><td>60</td><td>2,4</td><td>3,2</td> <td align="left">--no-fast-pskip</td></tr><tr><th><b>x264&nbsp;C07</b></th> <td>17853</td><td>76</td><td>2,2</td><td>3,5</td> <td align="left">--qp 20</td></tr></table>

    Auswertung

    Was sofort ins Auge sticht, ist die Dateigröße. Sämtliche x264-Konfigs sind deutlich kleiner als Xvid. Das gilt sogar für A06 mit voll aufgedrehtem AQ. CRF spielt dabei eine Rolle, wie C07 mit --qp 20 anstatt --crf 20 zeigt, erklärt aber nicht alles. Zum Vergleich: Sample 1 C00 ist 90% groß, Sample 2 C00 (CRF) 60% und Sample 2 C07 (QP) 76%. x264 hat für massig Bewegung offenbar ein deutlich besseres Händchen als Xvid. Das ist keine weltbewegende Neuigkeit, aber eine nette Bestätigung.

    Mir fällt auf, dass die Größenschwankungen insgesamt deutlich weniger sind als bei Sample 1. Die relative Geschwindigkeit dagegen bleibt recht konstant. x264 (C00) verbrät jeweils grob 3x soviel Zeit wie Xvid, zumindest mit einer Ein-Kern-CPU.

    In den Screenshots sieht man wieder ein geringeres Detailniveau bei x264. Das mag diesmal auch besser dem lfd. Film entsprechen. Nur sind weniger Details kein (kaum ein) Nachteil, wenn man die dank schneller Bewegung eh nicht wahrnimmt. Und dass dem so ist, zeigen die Beispielvideos. Hoffentlich klappt das mit dem Download. Ich hab doch noch nie Filehoster benutzt...

    Insgesamt dürfte damit der komplette Film mit Konfig C00 deutlich kleiner werden als Xvid, aber kaum – wenn überhaupt – schlechter. Ob das die dreifache Encodingzeit wert ist, muss sich jeder selbst beantworten. Für mich und meinen alten Prozessor ein klares nein. Bei grob geschätzt 5 gegen 15 Stunden Encodingzeit fällt die Entscheidung nicht schwer.

  • Sample 1 (wenig Bewegung)

    Download von A06 und A11 (13 MB):
    http://www.remixshare.com/download.php?f…18ca44e-5700670
    Xvid-Referenz steckt im Download ohne CQM.


    Testverlauf (Test mit CQM)

    x264 A00 mit Sharktooths EQM AVC HR rev.1:
    x264.exe --no-ssim --no-psnr --progress --sar 16:11 --cqmfile "C:\Encoding\_Matrizen\EQM AVC HR rev.1.cfg" --keyint 500 --min-keyint 13 --bframes 16 --b-pyramid --direct temporal --bime --ref 4 --partitions all --8x8dct --me hex --subme 5 --deblock 0:0 --aq-strength 0.0 --crf 18 -o "S1 x264 %nr%.mkv" "src.avs"
    <table style="text-align:right" border="1" cellpadding="5" cellspacing="0"><tr><th>&nbsp;</th><th><b>KByte</b></th><th><b>Größe %</b></th><th><b>fps</b></th><th><b>Rel. Zeit</b></th><th align="left"><b>CLI vgl. zu A00, Notizen</b></th></tr><tr><th><b>Xvid</b></th> <td>7252</td><td>100</td><td>10,0</td><td>1,0</td> <td align="left">Referenzwert. Körniger Look, hochdetailliert, streckenweise leichtes Makroblock-Rauschen im Hintergrund.</td></tr><tr><th><b>x264&nbsp;A00</b></th> <td>10481</td><td>145</td><td>5,0</td><td>2,0</td> <td align="left">detailärmer als Xvid, aber im Gegensatz zu A00 ohne CQM keine Blocks.</td></tr><tr><th><b>x264&nbsp;A01</b></th> <td>12801</td><td>177</td><td>4,8</td><td>2,1</td> <td align="left">--aq-strength 0.4<br></td></tr><tr><th><b>x264&nbsp;A02</b></th> <td>14401</td><td>199</td><td>5,0</td><td>2,0</td> <td align="left">--deadzone-inter 3 --deadzone-intra 6<br></td></tr><tr><th><b>x264&nbsp;A03</b></th> <td>17734</td><td>245</td><td>4,7</td><td>2,1</td>
    <td align="left">--deblock -2:-4 --aq-strength 0.5 --deadzone-inter 3 --deadzone-intra 6<br></td></tr><tr><th><b>x264&nbsp;A04</b></th> <td>10802</td><td>149</td><td>5,3</td><td>1,9</td> <td align="left">--deblock -2:-4 --aq-strength 0.5 --deadzone-inter 3 --deadzone-intra 6 --crf 22<br>Details wie Xvid. Rauschen wird sehr schön erhalten und zeigt sich deutlich in Bewegung im Gegensatz zum eher statischen Rauschen im Xvid-Encoding.</td></tr><tr><th><b>x264&nbsp;A05</b></th> <td>5464</td><td>75</td><td>3,5</td><td>2,9</td> <td align="left">--deblock -2:-4 --aq-strength 0.5 --deadzone-inter 2 --deadzone-intra 4 --crf 22.5 --subme 7 --b-rdo<br>Details eine Ecke unter Xvid. Das Rauschen hat jetzt diesen eher statischen Look. Eine Eigenheit der Sharktooth-Matrizen? Problem: Auf dem Gesicht sehe ich einen Effekt, der manchmal an schwimmende Texturen erinnert; machmal kommt es mir eher wie ein Flackern vor.</td></tr><tr><th><b>x264&nbsp;A06</b></th> <td>6731</td><td>93</td><td>4,1</td><td>2,4</td>
    <td align="left">--deblock -2:-4 --aq-strength 0.5 --deadzone-inter 2 --deadzone-intra 4 --crf 21.5 --subme 6 --b-rdo<br>Xvid-Detailniveau einwandfrei erreicht. Ich sehe weiterhin diesen Flacker-/Schwimmeffekt.</td></tr></table>
    Das Schwimm-Problem habe ich weiter untersucht. Ohne --b-rdo ist es komplett verschwunden, nur wird die Datei mit 11 MB viel zu groß. --bframes 2 --b-rdo schafft zwar keine komplette, aber brauchbare Abhilfe und liegt noch knapp unter Xvid-Größe. --b-pyramid abzuschalten verhässlicht das Problem, --direct auto hilft deutlich, und im Zusammenspiel mit --bframes 2 haben wir einen Sieger (A11) mit 6650 KByte (92%) und 4,3 fps (2,3x):

    x264.exe --no-ssim --no-psnr --progress --sar 16:11 --cqmfile "C:\Encoding\_Matrizen\EQM AVC HR rev.1.cfg" --keyint 500 --min-keyint 13 --bframes 2 --b-pyramid --direct auto --bime --ref 4 --partitions all --8x8dct --me hex --subme 6 --b-rdo --deblock -2:-4 --aq-strength 0.5 --deadzone-inter 2 --deadzone-intra 4 --crf 21.5 -o "S1 x264 %nr%.mkv" "src.avs"


    Auswertung

    CQMs sind was Feines! Das war schon mit Xvid so und gilt auch für x264, jedenfalls wenn es um Detail- und Rauscherhaltung geht. Denn die Dinger sind einwandfrei geeignet, den letzten Happen Qualität draufzulegen, der ohne CQM gefehlt hat.

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

  • Sample 2 (viel Bewegung)

    Download von A00 und A11 (13 MB, gekürzt):
    http://www.remixshare.com/download.php?f…51712e5-7723084
    Xvid-Referenz steckt im Download ohne CQM.


    Testverlauf (Test mit CQM)
    <table style="text-align:right" border="1" cellpadding="5" cellspacing="0"><tr><th>&nbsp;</th><th><b>KByte</b></th><th><b>Größe %</b></th><th><b>fps</b></th><th><b>Rel. Zeit</b></th><th align="left"><b>CLI, Notizen</b></th></tr><tr><th><b>Xvid</b></th> <td>23574</td><td>100</td><td>7,6</td><td>1,0</td> <td align="left">Referenzwert.</td></tr><tr><th><b>x264&nbsp;A00</b></th> <td>18901</td><td>80</td><td>4,3</td><td>1,8</td> <td align="left">--cqmfile "C:\Encoding\_Matrizen\EQM AVC HR rev.1.cfg" --keyint 500 --min-keyint 13 --bframes 16 --b-pyramid --direct temporal --bime --ref 4 --partitions all --8x8dct --me hex --subme 5 --deblock 0:0 --aq-strength 0.0 --crf 18<br>Wie in der Variante ohne CQM meine ich, im Hintergrund manchmal gebügelte Flächen zu sehen.</td></tr><tr><th><b>x264&nbsp;A11</b></th> <td>15803</td><td>67</td><td>3,4</td><td>2,2</td>
    <td align="left">--cqmfile "C:\Encoding\_Matrizen\EQM AVC HR rev.1.cfg" --keyint 500 --min-keyint 13 --bframes 2 --b-pyramid --direct auto --bime --ref 4 --partitions all --8x8dct --me hex --subme 6 --b-rdo --deblock -2:-4 --aq-strength 0.5 --deadzone-inter 2 --deadzone-intra 4 --crf 21.5<br>Es hat sich ausgebügelt. Ich sehe keinen Unterschied, und die Datei ist sogar kleiner als A00. Spontan schiebe ich das v.a. auf --subme und --b-rdo.</td></tr><tr><th><b>x264&nbsp;A12</b></th> <td>16114</td><td>68</td><td>3,3</td><td>2,3</td> <td align="left">wie A12, aber ohne --b-rdo<br>Praktisch identisch zu A11.</td></tr></table>

    Auswertung

    Wieder sind die Dateien deutlich kleiner als Xvid. Mit ein bisschen Experimentieren dürfte es möglich sein, in langsamen Szenen noch mehr Qualität (und damit besser als Xvid) herauszuholen und insgesamt trotzdem kleiner zu bleiben. Aber das wäre ein anderer Test.

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

  • Fazit

    So, das wär’s. Ich hoffe, den einen oder anderen hat’s interessiert. Für mich war’s jedenfalls ein sehr aufschlussreicher Einblick in die x264-Tiefen.

    Halten wir in Sachen HQ-Encoding und Detail-/Rauscherhaltung ein paar Beobachtungen fest:

    • x264 ist grundsätzlich fähig, Xvids Detail-/Rauschniveau mit kleineren Dateigrößen zu erreichen. Der Preis dafür sind ein vergleichsweise gemächliches Encoding und eine nicht ganz unkomplizierte Konfiguration.
    • Deadzones spielen eine zentrale Rolle. Sie müssen im niedrigen einstelligen Bereich liegen. Ganz runter auf 1 lohnt sich aber eher nicht.
    • CQMs helfen besonders dabei, Rauschen nicht oder nur sanft zu bügeln. Die Art der CQM ist natürlich entscheidend. *.mp4 guys HQ-Matrizen sollte man als Alternative auf jeden Fall in Betracht ziehen.
    • AQ hilft deutlich. Sinnvolle Werte dürften um 0.5 liegen. Hohes AQ führt schnell zu irrsinnigen Dateigrößen, deswegen ist Feinabstimmung wichtig.
    • Hohe --subme und --b-rdo sind entgegen oft gehörter Aussagen keine garantierten Detail-/Rauschkiller.
    • Hohe --subme und --b-rdo sind die entscheidenden Optionen für eine sinnvolle Dateigröße.
    • --no-dct-decimate und --no-fast-pskip scheinen eine untergeordnete Rolle zu spielen.
    • Sinnvolle CRF-Werte für einen Vergleich zu ASP CQ 2 liegen bei ca. 20–22.

    Insgesamt ist mir Konfig Nr. A11 mit Sharktooths Matrix am sympatischsten. Aber wichtig! Das ist keine Empfehlung, diese und keine andere x264-Konfig zu verwenden. Es ist ein Weg von vielen, um das gesetzte Ziel zu erreichen; und wahrscheinlich nicht einmal der idealste.

    Umfangreichere Tests mit unterschiedlichem Material und voller Spielfilmlänge wären natürlich schön, aber dafür fehlt mir auf jeden Fall die Rechenleistung und im Moment auch die Lust. Was ich mir bestätigen wollte, ist grundsätzlich bestätigt.

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

  • Erstmal ein Lob, dass Du Dir die viele Mühle gemacht hast.

    Hier ein paar Kommentare, Fragen und Anregungen:

    - Schlecht finde ich, dass der Test ist nicht einfach nachstellbar da das Quellmaterial nicht vorhanden/verfügbar ist.
    - Umklar ist mir ob Du bei den ohne CQM Tests auch bei Xvid keine Custom Matrix verwendet hast, oder ob da immer die 'Heini MR.xcm' verwendet wurde.
    - Warum, außer beix264 B01 und x264 B02, nur --me hex?
    - Warum so wenige Referenzframes? (dann aber viele bframes,...)
    - Würde auch den maximalen IDR-Abstand erhöhen.
    - --direct auto ist vielleicht auch interessant.
    - Wäre schon, wenn Du auch angebenwürdest welchen Decoder Du beim Playback verwendest.

    Zitat

    Dass B-RDO gar nicht bügelt, hat mich überrascht. Möglich, dass hier Deadzones/AQ den glättenden Effekt wieder vollständig kompensieren.


    Ne ist relativ normal. :) B-Frames sind im h.264 Standard wesentlich 'besser' als bei Xvid. -> Was bei Xvid gilt, gilt noch lange nicht bei x264. ;)

    Cu Selur

  • – Leider habe ich kein brauchbares Material, das ich so klar öffentlich erwähnen möchte. Aber wer sich einen Kannibalen vorstellt, der schweigend junge Schafe zählt, kommt sicher dahinter.
    – Xvid-Konfig ist immer konstant die aus dem ersten Posting.
    – Decoder immer ffdshow 2007-11-14 rev1606_clsid mit Inloop-Deblocking und ohne sonstige Spielereien. Ansonsten Media Player Classic mit VMR9 renderless und Resizer Bicubic -0.75

    – --me hex, weil die höheren deutlich langsamer waren und zwar nicht geschadet, aber auch nichts gebracht haben. Vergleiche mal B05 und B06.
    – --ref 8 hatte ich bei B03 getestet, und da hat’s nichts genutzt. Zu B-Frames hab ich schon ein paar mal gehört, man sollte die Entscheidung komplett x264 überlassen. Kurz reingeschaut dürften es meistens 3 am Stück sein.
    – Didée hatte mal erwähnt, dass --direct spatial wohl auf jeden Fall glätten würde. Ich hab ihm das ungesehen geglaubt.
    – B-RDO: Sharktooth listet das im engl. Forum immer als böse für die Details. Irgendwann habe ich das auch schon selbst mal genau so erlebt. Deswegen hat’s mich gewundert.

    Hm, zugegeben, da ist viel Hörensagen und grob Schätzen drin. x264 ist halt nicht so sehr meine Welt. Ich will auch gar nicht behaupten, dass die Konfigs das Ende der Fahnenstange wären. Sind wir uns einig, dass qualitativ ohne CQMs nichts Weltbewegendes mehr machbar ist? Wie maximal klein das letztendlich wirklich geht, war mir erstmal nicht sooo wichtig.

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

  • Ich kann mich schwach an eine Diskussion im englischen Board erinnern, wo versucht wurde, optimale Verhältnisse zwischen B-Frames und Referenzframes zu finden. Die Kurve war ziemlich nicht-linear und überraschend (also z.B. 5 oder 6 Ref besser als 8 bei 2 B, oder so was).

  • Sample 2 ohne CQM ist fertig. Damit das Ganze ein bisschen aussagekräftiger wird, habe ich die wichtigsten Encodings hochgeladen. Links im jeweiligen Posting oder:

    Sample 1 ohne CQM
    Sample 2 ohne CQM (gekürzt, um die Uploadzeit zu drücken)

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

  • Darf man fragen, auf was für einem Monitor du dir die Qualitättests gibst?

    Am besten mit genauer Panelangabe. Ich musste nämlich für meinen persönlichen Qualitätsanspruch, seitdem ich nen 24Zoll IPS-Panel habe auch einiges umändern.:)

  • Selur
    In Sample 1 geht es um große Vordergrundobjekte, auf denen die Aufmerksamkeit liegt. Bei Sample 2 liegt der Detailverlust in Hintergrundflächen, auf die man nicht seine Aufmerksamkeit konzentriert. Außerdem hoffe ich auf den CQM-Test für die letzten fehlenden Details. Was ich vorher ab und zu wirr getestet hatte, deutet darauf hin, dass es mit Matrix einfacher ist, die letzten paar Details rauszukitzeln, als ohne.

    Für das größere max. I-Frame-Intervall, was schlägst du vor? Auf 500 verdoppeln? Spricht etwas dagegen, dann auch das minimale Intervall zu erhöhen?


    Bumsfalara
    Siehe erstes Posting: 15,4"-Widescreen-TFT 1680×1050. Mein Laptop-Bildschirm, nicht gerade mit brillianten Werten in Sachen Blinkwinkel, Helligkeitsverteilung, Farbwiedergabe. Panel? Puh! TN, schätze ich. Getestet hab ich immer bei dunkler Umgebung und voll aufgedrehter Helligkeit. Mehr lässt sich aus dem Ding nicht rausholen. Er zeigt allerdings Artefakte schon viel deutlicher als mein alter 19"-CRT, deswegen bin ich recht zuversichtlich, dass nichts Wichtiges durchgerutscht ist.

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

  • Zitat

    Für das größere max. I-Frame-Intervall, was schlägst du vor? Auf 500 verdoppeln?


    500 ist meiner Erfahrung nach ein guter Wert, wir hatten dazu auch mal einen Beitrag in dem das angetestet wurde.

    Zitat

    Spricht etwas dagegen, dann auch das minimale Intervall zu erhöhen?


    Ein minimales Intervall > 1 soll halt verhindern, dass bei Szenen in denen ein Blitz auftritt (oder vergleichbare Störungen) ein IDR Frame gesetzt wird. Es wird dann nur ein I-Frame gesetzt, was Kompressionstechnisch okay ist, da ja über I-Frames hinweg referenziert werden kann. ;) Ein zu großes minimales Intervall sorgt dafür, nicht schnell genug ein Szenenwechsel durch ein IDR-Frame begleitet wird, was vor allem bei sehr schnellen Schnitten Nachteilhaft sein kann. Persönlich würde ich ein minimales Interval zwischen Framerate/4 und Framerate/2 wählen. (also 6 zwischen 13; nehme i.d.R. 12 oder 13)

    Gerade bei MusikClips, AnimeIntros oder Zusammenschnitten von Szenen kann es interessant sein hier zu experimentieren für 'normale' Filme sollte ein Wert von 13 aber okay sein. (bei Filmen wie Event Horizon ist durch aus auch ein etwas größerer Wert interessant)

    Cu Selur

  • Test mit Matrix ist fertig und das Fazit auch. Kurz auf den Punkt gebracht: Gleich gut, kleiner, laaaangsamer.

    Für mich persönlich ist die Encodingzeit jenseits von Gut und Böse. 12h Encodingzeit im Vergleich zu 5h ist einfach zu lang.

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

  • Test mit Matrix ist fertig und das Fazit auch. Kurz auf den Punkt gebracht: Gleich gut, kleiner, laaaangsamer.

    Für mich persönlich ist die Encodingzeit jenseits von Gut und Böse. 12h Encodingzeit im Vergleich zu 5h ist einfach zu lang.


    Wobei man das in meinen Augen auf keinen Fall pauschalisieren darf, gerade im Mehrkernbereich skaliert x264 besser als Xvid.

    Ich hab Tendenzen hierfür auch schonmal im Forum aufgezeigt.

  • Klar. Welche Konfigs interessieren dich denn am meisten? Für Screenshots und Videoschnipsel musst du aber bis nach Silvester warten. Ich bin die Woche bei meinen Eltern und da gibts nur 56k :(.

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

Jetzt mitmachen!

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