Xvid vs Divx vs X264

  • Ich vergleiche Encodes i.d.R. FrameByFrame mit einem kleinen AvisynthSkript wenn der Unterschied nicht schon beim normalen Playback offensichtlich ist.
    Den Clip betrachtend würde ich definitiv zu 2pass Encoding und eventuellem PreProcessing durch Avisynthfilter raten.

  • Der Vergleich DivX / XviD ist nicht einfach, weil so ein Vergleich nur dann verwertbare Ergebnisse bringt, wenn die Optionen aufeinander angepasst werden. Sonst könnte man ja z.B. XviD auf "optimal" und DivX auf "schnell aber ungenau" einstellen, und schon sind Vorurteile das Ergebnis.

    Allerdings ist es Fakt, dass man bei XviD einiges ausschalten muss, damit nur das unterstützt wird, was DivX auch kann. Dennoch ist ein 1:2-Verhältnis bei gleicher Quantisierung höchst verdächtig.

  • Selur: könntest du dein kleines script mal posten ...
    Ich hab jetzt mal mehr "sinnvolle" Einstellungen anstatt der "Defaults" genommen. Hier ist das Ergebnis:

    http://rapidshare.com/files/84195612/vbr-xvid.rar.html

    Adaptive Quantisierung is an
    Quantifizierung nach h.263
    QuaterPixel Search is an
    Begin with Keyframe
    Chroma optimizer enabled
    Motion search: 6
    VHQ mode: 4
    Use VHQ for B-frames ist an
    Use Chroma motion ist an
    Turbo ist aus

  • Code
    video1=AviSource("Pfad zum ersten File")
    video2=AviSource("Pfad zum zweiten File")
    return StackVertical(video1,video2)

    Wäre ein kleines Skript um zwei avis zu vergleichen.

    Cu Selur

    Ps.:

    Zitat

    Dennoch ist ein 1:2-Verhältnis bei gleicher Quantisierung höchst verdächtig.


    Das heißt nur das die Standardeinstellungen die beide Codecs verwenden unterschiedlich sind. Hab mal aus Spaß gerade eben bei vergleichbaren Settings einen 1pass quant2 encode des Clips verglichen. -> nur leichte Abweichung in der Größe, DivX ist etwas glatter und Xvid blocked schneller.

  • Ausserdem, wenn may24 die vorgegebenen *Standardeinstellungen* der Codecs verwendet hat, dann ist die Handhabung der B-Frames unterschiedlich:

    Xvid: 2 Bframes, B-Faktor = P * 1.5 + 1 => P2 B4 B4 P2 B4 B4 ...

    DivX: 1 Bframe, B-Faktor = P + 1 => P2 B3 P2 B3 P2 B3 ...

    => Mit den Standard-Einstellungen ist bei QP2-Encoding ein deutlicher Größenunterschied zu erwarten, weil Xvid mehr B-Frames verwendet und sie stärker komprimiert, während DivX weniger B-Frames verwendet und sie schwächer komprimiert.

  • Was könnte man gegen das "Blocken" des Xvid unternehmen ?
    Nur 1-Bframe .. oder andere Matrix ?
    Soweit ich weiß gibt es keine Matrix die das Bild verbessert ... sonder nur welche die mehr (oder weniger) "Details" herausfiltern. Oder lieg ich da falsch ?

  • Dann spricht das wohl vor allem für die Effizienz von B-Frames. Die halbe Größe! Und die Szenen waren noch überwiegend ruhig und vorhersehbar.
    __

    Stelle keine Fragen über XviD, bevor du "Wissenswertes rund um XviD" gelesen hast! -- Von Selur, im FlaskMPEG-Board.

  • Wenn man DivX mit XviD vergleicht, müssen auch die Frametypen übereinstimmen. Zu min. bei den KeyFrames ist dies Möglich:

    Als erstes hab ich per Script: Xvid encodet, die Frameliste Exportiert und in eine IFrameList umgewandelt, damit DivX die gleichen I-Frames setzt. Beim ersten Versuch hab ich mal CBR und ohne B-Frames encodet:

    Xvid Settings:
    Profil: unrestricted; Matrix=H264; Rest=aus
    Type: CBR; RDF=16; AP:100; Smoother=100
    Quant: 1
    Zone: 0=W1.00,K, Rest=aus
    Quali: Motion=6; VHQ=4; MaxIFrame=200; Rest=aus
    Quant Rest: wie Quant; Trellis=aus

    DivX Settings:
    -b1q 1 -keylist *\export_frames.txt -pq 8610 -b 0 -sc 100 -key 200 -p -windowed_fullsearch=2 -thread_delay=1


    Code
    Quant: [B][COLOR='Magenta']1[/COLOR][/B][COLOR='DimGray']Name:[/COLOR] divx_CQ1.avi                      xvid_CQ1.avi[COLOR='DimGray']Size:[/COLOR] 53,700,608 bytes (51.213 MB)      81,293,312 bytes (77.527 MB)[COLOR='DimGray']FourCC:[/COLOR] divx/DX50                       xvid/DX50[COLOR='DimGray']Stream size:[/COLOR] 53,653,036 bytes           81,245,052 bytes[COLOR='DimGray']Bitrate:[/COLOR] 6259.788211 kbps               9478.994232 kbps[COLOR='DimGray']Qf:[/COLOR] 1.158937                            1.754940[COLOR='DimGray']Overall PSNR:[/COLOR] 47.5292                   48.3399Quant: [B][COLOR='Magenta']2[/COLOR][/B][COLOR='DimGray']Name:[/COLOR] divx_CQ2.avi                      xvid_CQ2.avi[COLOR='DimGray']Size:[/COLOR] 31,897,600 bytes (30.42 MB)       26,183,680 bytes (24.971 MB)[COLOR='DimGray']FourCC:[/COLOR] divx/DX50                       xvid/DX50[COLOR='DimGray']Stream size:[/COLOR] 31,849,573 bytes           26,137,023 bytes[COLOR='DimGray']Bitrate:[/COLOR] 3715.942218 kbps               3049.449586 kbps[COLOR='DimGray']Qf:[/COLOR] 0.687969                            0.564575[COLOR='DimGray']Overall PSNR:[/COLOR] 45.9297                   45.0273Quant: [B][COLOR='Magenta']4[/COLOR][/B][COLOR='DimGray']Name:[/COLOR] divx_CQ4.avi                      xvid_CQ4.avi[COLOR='DimGray']Size:[/COLOR] 13,848,576 bytes (13.207 MB)      11,255,808 bytes (10.734 MB)[COLOR='DimGray']FourCC:[/COLOR] divx/DX50                       xvid/DX50[COLOR='DimGray']Stream size:[/COLOR] 13,802,115 bytes           11,208,927 bytes[COLOR='DimGray']Bitrate:[/COLOR] 1610.315523 kbps               1307.764002 kbps[COLOR='DimGray']Qf:[/COLOR] 0.298133                            0.242119[COLOR='DimGray']Overall PSNR:[/COLOR] 42.2649                   41.4375

    Jetzt muß nur noch ein PSNR Quali Vergleich zwischen Quelle und dem Encodeten her...

    Original vs divx_CQ1.avi

    Code
    Minimum   Average   MaximumMean Absolute Deviation:    0.0702    0.7165    0.9691         Mean Deviation:   -0.1803   -0.1080   +0.0016                   PSNR:   44.3481   47.6857   53.8540           Overall PSNR:   47.5292


    Original vs xvid_CQ1.avi

    Code
    Minimum   Average   MaximumMean Absolute Deviation:    0.0706    0.6357    0.8962         Mean Deviation:   -0.1619   -0.0953   -0.0146                   PSNR:   44.6982   48.4930   53.8544           Overall PSNR:   48.3399

    Original vs divx_CQ2.avi

    Code
    Minimum   Average   MaximumMean Absolute Deviation:    0.0848    0.8927    1.1632         Mean Deviation:   -0.1818   -0.1071   -0.0107                   PSNR:   43.3550   46.0869   53.1833           Overall PSNR:   45.9297


    Original vs xvid_CQ2.avi

    Code
    Minimum   Average   MaximumMean Absolute Deviation:    0.0880    0.9922    1.2664         Mean Deviation:   -0.1755   -0.0945   +0.0039                   PSNR:   42.7855   45.2018   53.1197           Overall PSNR:   45.0273

    Original vs divx_CQ4.avi

    Code
    Minimum   Average   MaximumMean Absolute Deviation:    0.1263    1.3806    1.7906         Mean Deviation:   -0.2723   -0.1105   +0.1045                   PSNR:   40.3864   42.4804   50.9833           Overall PSNR:   42.2649


    Original vs xvid_CQ4.avi

    Code
    Minimum   Average   Maximum
    Mean Absolute Deviation:    0.1293    1.5138    1.9895
             Mean Deviation:   -0.2898   -0.0931   +0.1343
                       PSNR:   39.5698   41.6532   50.8893
               Overall PSNR:   41.4375
  • Och nööö ...

    Wenn man DivX mit XviD vergleicht, müssen auch die Frametypen übereinstimmen.


    Warum denn das? Hier geht's doch - grobe Himmelsrichtung - eher um die Frage, warum 40MB rauskommen wenn 20MB zu erwarten gewesen werden. Da ist die genaue Verteilung der Frame-Typen reichlich unwichtig.

    Zitat

    Jetzt muß nur noch ein PSNR Quali Vergleich zwischen Quelle und dem Encodeten her...

    ... [Daten] ...


    Deine Daten beweisen nicht mehr und nicht weniger, als dass Xvid bei deutlich höherer Bitrate einen deutlich besseren PSNR-Wert erreicht hat, und umgekehrt. Glückwunsch!
    (... und morgen beweisen wir, dass es nach Sonnenuntergang dunkel wird.) ;)

    Was allerdings interessant ist, das sind die unterschiedlichen Endgrößen der beiden Codecs, bei gleicher Quantisierungsstufe. Versteh' ich nicht, warum das so deutlich divergiert ... seltsam.
    Oh, halt:

    Zitat

    Xvid Settings:
    Profil: unrestricted; Matrix=H264; Rest=aus


    DAS wäre natürlich ein Erklärungsansatz. Woher hast Du denn die Beta von Xvid 2.0 ?!?!! :D

  • Didée
    kannst Du mal ein bissl warten? Ich taste mich halt langsam ran und da beginnt es bei mir mit CBR Encoding, das die Settings zwischen den Codecs gleich sind und nicht, das irgendwo der Spezielle Codec irgendwo Spezial Sachen verwendet. Und da gehört für mich auch die Frametypen dazu. Ich kann auch DivX sagen, das er 500 IFrames erzeugt und Xvid nur 40. Ergo um es zu vergleichen = gleiche Frames!

    Und überhaupt: bis jetzt habe ich noch keine DivX Settings irgendwo gesehen.

    PSNR-Wert gehören mal bei mir mit dazu! Und warte da erstmal, wenn ich dann mehrere B-Frames verwende, denn da siehts bestimmt ganz anders aus!

    Matrix=H264: Ja sorry, H263! :)

  • Zitat

    Wenn man DivX mit XviD vergleicht, müssen auch die Frametypen übereinstimmen.


    Dem kann ich so auch nicht zustimmen, es sei denn man veröffentlicht nur einzelne Screenshots in einem Test. Ansonsten sollte es dem Codec überlassen sein wie er die Frameverteilung vornimmt.

    Zitat

    und nicht, das irgendwo der Spezielle Codec irgendwo Spezial Sachen verwendet.


    Wenn Du alle 'Spezial Sachen' rausklammerst sind alle MPEG-4 ASP Codecs gleich.

    Cu Selur

Jetzt mitmachen!

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