x264 Glättung verringern

  • Hallo zusammen,

    ich encodiere diverses Digicam Material mit folgenden Einstellungen per mencoder in h264.

    Code
    mencoder -cache 51200 -of avi -ovc x264 -ofps 25 -oac mp3lame -srate 44100 -mc 0 -vf pp=lb,scale=768:576 -x264encopts "keyint=250:min-keyint=25:scenecut=40:bframes=3:b-bias=0:ref=5:nodeblock:crf=25:ratetol=1.0:vbv-bufsize=0:vbv-init=0.0:ipratio=1.4:pbratio=1.3:chroma-qp-offset=0:rceq=blurCplx^(1-qComp):qcomp=0.6:cplxblur=20.0:qblur=0.5:subq=4:partitions=all:direct-8x8=-1:direct=spatial:me=hex:8x8dct:trellis=0:nr=0:sar=1/1:fps=25:threads=auto:no-psnr:no-ssim" -lameopts "cbr:preset=128:mode=0" -o 01_crf_25_nodeblock.avi 01.mod

    Für mein Empfinden wird das Material zu stark geglättet, vor allem Details gehen im Video verloren. Zum "Vergleich" habe ich ein 2pass mit xvid mit dem selben Material gemacht. Dort sind zwar Blöcke erkennbar jedoch ist das ganze nicht so matschig und Details sind etwas besser erkennbar. Die Encodings sende ich anbei.

    Gibt es noch weitere Parameter mit denen ich das Glätten vom x264 verringern kann? Deblock und NR habe ich ja bereits ausgeschaltet.

  • Könntest Du vielleicht den kleinen Ausschnitt auch als DV zur Verfügung stellen?
    Spontan hätte ich gesagt könnte man folgendes versuchen:
    a. Custom Matrix von Sharktooth
    b. bei den B-Frames mehr Optionen erlauben, damit die B-Frames effektiver werden
    c. trellis aktivieren

    Cu Selur

  • Könntest Du vielleicht den kleinen Ausschnitt auch als DV zur Verfügung stellen?
    Spontan hätte ich gesagt könnte man folgendes versuchen:
    a. Custom Matrix von Sharktooth
    b. bei den B-Frames mehr Optionen erlauben, damit die B-Frames effektiver werden
    c. trellis aktivieren

    Cu Selur

    hier das cam-file

    zu a: ist das video dann noch problemlos decodierbar? habe davon gelesen das bspw. ffdshow mit AVC-CQMs so seine Probleme hat.

  • Danke für die Hilfe. Den Thread mit der Matrix habe ich schon mal gelesen, aber wie gesagt wegen möglichen Decoding Problemen erstmal weggelassen. Werd das jetzt aber wohl mal probieren.

  • Mit den Matrizen bei H.264 bin ich mir irgendwie nicht so sicher, ob und was die tatsächlich bringen / bringen sollen. Bei x264 wird in erster Linie der Encoder genasführt und verwirrt, weil die matrizen etwas anderes produzieren, als der Encoder eigentlich erwartet ...

    Generell ist's so, dass die leichte Abflachung eben zur Grundcharakteristik der hocheffizienten neuen Technologie gehört. Um das Abzustellen, muss man m.E. die Effizienz eben wieder gezielt reduzieren ...

    Früher haben die Leute über ASP geschimpft, weil es so viel Detail killt - MPEG-2 wäre in der Hinsicht viel besser.
    Heute ist's genau das gleiche Spiel, nur eben um eine Technologie-Generation verschoben.

    Was ich mal probieren würde: Deadzones verringern (!), trellis=1 (NICHT 2), b-predict=temporal (spatial glättet definitiv!), 8x8 dct, no dct decimate, einen x264-build mit AQ verwenden, ...

    ... so einige Sachen, die die "metrische" Effizienz reduzieren.


    [teilw. OT] A propos Deadzone:

    Weiss jemand, WAS GENAU da eigentlich verarbeitet wird? Also wenn deadzone_inter=21, dann bezieht sich die '21' auf ... WAS?
    Hab' bisher nirgendwo eine wirklich brauchbare Erklärung finden können - immer nur so trivial-Erklärungen ala "kleinere Werte erhalten mehr Details bei höherer Bitrate". Das erklärt aber keineswegs, WAS da eigentlich gemessen/verglichen/ausgewertet wird ...

  • Obs dir was hilft weiss ich nicht

    deadzone_inter=<0\-32>
    +Set the size of the inter luma quantization deadzone for non-trellis
    +quantization (default: 21).

    Programmable quantization dead zone and threshold for standard-based H.264 and/or VC1 video encoding
    gibts auf bei
    http://www.freepatentsonline.com/20060126724.html
    (geht glaub ich nur nach freier Registrierung)

    hänge die PDF mal an

  • So hab die CQM von Sharktooth mal angewandt einen wirklich deutlichen Einfluss auf die Schärfe hat die nicht.

    Werd mal Didees Vorschläge ausprobieren. Eine weitere Möglichkeit wäre noch den "Unscharf maskieren" Filter von mencoder zu benutzen, allerdings bin ich da vorsichtig weil die Encoding-Einstellung später nicht für ein bestimmtes sondern für eine große Zahl an Videos herhalten muss.

  • Oh, das ist doch schon mal was. Danke schön!
    Jetzt muss man nur noch den abstrakten Formelkram in humanverständliche Form bringen ... :D

    Manche Encoding-Veteranen erinnern sich vielleicht noch an die Episode mit too_small_limit=2 in alten XviD-Tagen, die "metrisch" gut, visuell aber ziemlich nachteilig waren (Detailverlust). Ja, sowas (ähnliches) wie "deadzone" gibt's nicht nur bei H.264 ... :)

  • Didée: Deadzone runterschrauben usw. bringt, meinen Versuchen nach heute, weniger als Custom Matrizen, wenn man davon ausgeht, dass man nicht größer werden will als das Vergleichs (mencoder) Xvid file.

    Wobei angemerkt sei, dass man da die Makroblöcke schon recht gut sehen kann und generell die Datenrate recht niedrig ist für das Video. (mag die Xvid Qualität da auch nicht)

    zwiebel_sondermann: deinterlaced Du eigentlich irgendwo ?

    Cu Selur

  • Mit Custom Matrizen hab' ich wirklich noch nicht so viel herumgespielt -> ist also nur theoretisches Bla-bla von mir. ;)


    >> (mag die Xvid Qualität da auch nicht)

    Wenn ich mir die beiden encodierten Samples anschaue, dann hab ich mit den "Artefakten" der beiden Codecs sowieso noch die wenigsten Schwierigkeiten.

    Was für mich sofort ins Auge fällt ist das wirklich schlechte Deinterlacing. Das sieht man sofort, *und* das treibt natürlich die Bitrate (bzw. die nötige Stärke der Quantisierung) deutlich in die Höhe. Treppenartefakte und - vor allem - sporadisches Motion Blending mögen die Codecs alle nicht.
    In jedem Fall wird das feine Detail (Gesicht des Mannes) durch dieses suboptimale Deinterlacing bereits deutlich angegriffen: Signaltechnisch gesehen wird die Charakteristik des Details in Richtung "Rauschen" verschoben (Detail sieht in 'diesem' Frame anders aus als in den Nachbarframes).

    Würde also mal schätzen, dass die Codecs hier vor allem mit den Eigenheiten des verwendeten Deinterlacings kämpfen, und die Beurteilung des Erhaltens-von-Detail aus diesem Grund zumindest schwierig, wenn nicht sogar nebensächlich ist ...

  • Welche hat mencoder denn?

    Bei mir werden die ersten Frames des Xvid Avis nicht ordentlich dekodiert.

    - linear blend deinterlacer
    - linear interpolating deinterlace
    - cubic interpolating deinterlacer
    - median deinterlacer
    - ffmpeg deinterlacer
    - FIR lowpass deinterlacer
    - lavcdeint/libavcodec's deinterlacing filter
    - motion compensating deinterlacer (ist sehr sehr lahm)
    - kerndeint/Kernel Deinterlacer
    - yadif

    Hier auch ein netter Link dazu:

    http://guru.multimedia.cx/deinterlacing-filters/

Jetzt mitmachen!

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