This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

[BUG] NVEnc h.265 - adaptive quantization scheint nicht zu funktionieren
#21
Quote: Du konntest das auf deinem System mit den Studio Treibern auch nachstellen, richtig?
Ja. Ist vermutlich schon länger so. (Ich nutze i.d.R. die GPU nur wenn ich AV1 encode.)

Denke, das ist rigaya klar, wenn die strength nicht geht, geht aq nicht. Bzw. das müsste man vermutlich mit dem Analyser testen um zu sehen, wie die Quantizer Verteilung ist. Sein Punkt ist ja: 1. sein Code macht da nichts 2. ihm ist keine Einschränkung bekannt 3. er vermutet ein Treiberproblem

Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#22
Der lookahead 2 Modus ist jedenfalls scheinbar nicht von schlechten Eltern, auch ohne AQ.  Cool

Hatte wegen des anderem Gedöns nicht allzuviel Zeit und Nerven, aber hab mein FFMPeg Skript zum ermitteln von VMAF, SSIM und PSNR mal angeworfen, und da war lookahead 2 lookahead 0 mit adaptive quantization um längen überlegen, egal was für eine aq-strength eingestellt ist.
Sieht so aus, als ob man damit locker 25-33% Bitrate sparen kann und sich damit NVEncC h.265 in eine ganz neue Liga katapultiert, mindestens in Kombination mit tf-level 4...
Vielleicht bin ich zu euphorisch angesichts der wenigen Tests. Kannst ja bei Gelegenheit und Muße selber mal rumexperimentieren. Lohnen könnte es sich, und selbst meine betagte Karte schafft (mindestens ohne tf-level 4) noch knapp 30fps bei 4K Material  Smile

Mit TF-Level 4 noch um die 22, aber den kann man im Zweifel auch durch z.B. FluxSmoothST mit notfalls bis auf 168 erhöhter Spatial Schwelle (darüber häuft sich Banding, genauso wie wenn man die Temporal Schwelle auch nur von 7 auf 8 erhöht) + Removegrain(9) oder (2) ersetzen und bekommt fast so gute Ergebnisse. Wenn einen Grain eher nervt ist der RemoveGrain Mode 9 in Vapoursynth echt mal nen Versuch Wert... So nerviges Ringing rund um Kanten hab ich damit schon super wegbekommen, ohne dass das Ergebniss übermäßig weichgezeichnet wirkt.
Reply
#23
Man könnte auch ne EdgeMask verwenden um den Effekt auf den Bereich um Kanten zu beschränken,...
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#24
Was hast du eingestellt bzgl. Lookahead 2? Wird die FPS-Rate dann nicht kleiner? Ich will auch weiter Dateigröße sparen.
Reply
#25
Bei mir wird die Datei eher größer bzw. was hast du für Einstellungen?
Reply
#26
Sorry, war ne Zeit lang Weg vom Fenster...
Muss mich zunächst mal selbst korrigieren bezüglich RemoveGrain
Quote:Wenn einen Grain eher nervt ist der RemoveGrain Mode 9 in Vapoursynth echt mal nen Versuch Wert... So nerviges Ringing rund um Kanten hab ich damit schon super wegbekommen, ohne dass das Ergebniss übermäßig weichgezeichnet wirkt.

Der RemoveGrain mode, der nerviges Ringing um Kanten entfernen kann ist mode 19 und nicht mode 9.
Der Mode entfernt allgemein viel Grain und dadurch bedingte Artefakte, ohne dass das Ergebnis übermäßig weichgezeichnet aussieht, so dass ich den sehr gerne bei Material mit den erwähnten Artefakten verwende. Dabei braucht RemoveGrain auch in diesem Mode im vergleich zu anderen Filtern kaum Ressourcen. Praktischer Nebeneffekt: Man spart meist mehrere Mbit Bitrate ein und es sieht tendenziell besser aus, als das Originalmaterial mit den ganzen Artefakten (Ringing, Chroma Flackern in dunklen Bereichen, etc.).

Mode 9 sehe ich mittlerweile als das bessere "always on" default setting an als Mode 2, der nur wenig Bitrate einspart.
Dabei sind die Veränderungen die Mode 9 vornimmt ebenfalls sehr unauffällig und an der Grenze der Wahrnehmungsschwelle, die Bitrate sinkt aber meist um so 5-10%, selbst bei Material, bei dem nur unauffälliger Grain im Hintergrund/in dunklen Bereichen vorhanden ist und nicht das ganze Bild verrauscht wirkt.
Mode 2 schafft meist eher nur so 1-3% Einsparung und ich kann nicht sagen, dass das Ergebnis großartig detaillierter aussieht o.ä.

Quote:Selur:

Man könnte auch ne EdgeMask verwenden um den Effekt auf den Bereich um Kanten zu beschränken,...
Erklär mal (für Hybrid), lern gerne dazu. Kann man damit jeden Filter entsprechend beschränken? Hab aber wie gesagt mode 19 gemeint, der viele Artefakte wegbekommt. Mode 9 ist dafür zu "vorsichtig" und dämpft höchstens Flackern etwas, Ringing schafft der nicht (jedenfalls in dem Maße).
Reply
#27
(27.06.2026, 10:05)powerthrash4K Wrote: Bei mir wird die Datei eher größer bzw. was hast du für Einstellungen?

Schätze, dass du aq-strength 0 bei lookahead-level 1 verwendest, stimmt's?

Ich hol jetzt mal ein bißchen übertrieben aus  Blush

Adaptive quantization mit der default Einstellung aq-strength 0 bügelt mir persönlich bei h.265 in besonderem Maße, aber auch schon bei h.264 viel zu viele Details aus angeblich undetaillierten größeren Flächen, Hintergründen etc.

Bei h.264 8 bit hat das sogar häufig zu banding Effekten im Hintergrund/auf Flächen geführt (wandernde lange Linien bzw. harte Übergänge), die ich persönlich ultra nervig finde und mich frage, wie das vielen Leuten nicht auffallen kann. Was auffälligeres gibt es kaum...
Bei h.265 10 bit ist das mit den harten Übergängen nicht mehr häufig, aber das neigt dafür dazu in solchen Flächen viel zu stark weichzuzeichen.
Imho ist dieses teils übertriebene weichzeichnen in Flächen vielleicht einer der Gründe, warum h.265 nie dieselbe Popularität wie h.264 erreicht hat.

NVEncC ist da keine Ausnahme. Ich bilde mir sogar ein, dass es mit aq-strength 0 noch stärker Details aus Flächen auswäscht, als x265.
Allgemein hatte das GPU Encoding ja lange Zeit dieses Problem und erst mit den neuesten GPU Generationen ist das einigermaßen im Griff.

Trotzdem produziert NVEncC h.265 für mich meist nur zufriedenstellende Ergebnisse, die qualitativ mit x264 Medium Preset mithalten können, wenn aq-strength auf mindestens 12-13, jedenfalls auf keinen Fall niedriger als 11 eingestellt ist. 0 scheint mir meist mit noch deutlich niedrigeren Werten unterwegs zu sein
Vergleiche von SSIM, PSNR und VMAF haben bei mir diesen subjektiven Eindruck im Vergleich zu x264 preset medium bestärkt.
Gerade bei 4K frage ich mich was die hohe Auflösung soll, wenn so stark Details in Flächen ausgewaschen werden. In Wahrheit sieht das Bild wenn man aq-strength niedrig oder auf 0 bzw. auto einstellt oft nicht besser aus als 1080p, man braucht aber 2-4x so viel Bitrate.

NVEncC hebelt - wie hier im thread zu lesen - bei lookahead-level 2 adaptive quantization entweder aus, oder AQ produziert per default qualitativ bessere Ergebnisse. Genau kann das im Moment niemand sagen. Auch von Rigaja kam dazu ja nichts genaues. Jedenfalls bringt schrauben an aq-strength absolut gar nichts.

Vergleicht man jedenfalls nun lookahead-mode 2 mit lookahead-mode 1 mit aq-strength 13-15 zeigt sich jedenfalls sowohl subjektiv, als auch bei zugegebenermaßen nur ersten Tests mit SSIM, PSNR und VMAF, dass lookahead-mode 2 effizienter unterwegs ist und ordentlich Bitrate bei gleicher Qualität einspart. Fps sinken dabei um gut 15%.
Muss allerdings mittlerweile zugeben, dass die Einsparungen nicht immer in gleich hohem Maße der Fall sind. Mal sind es 3%, mal 15%. So viel Zeit für ausgiebiges Testen war noch nicht.
tf-level 4 scheint zuverlässiger Einsparungen von 8% und mehr zu bringen, kostet dafür aber auch bei lookahead mode 1 gut 30% fps, bei mode 2 nur etwa 27,5% speed.

Ich könnte mich bis auf weiteres also zusammenfassend zu diesen Aussage hinreissen lassen:
Wenn schon beides zusammen aktivieren, da tf-level 4 am zuverlässigsten was bringt, und wenn der aktiv ist, ist lookahead-mode 1 nur knapp 15% schneller, verbraucht aber wenn man Pech hat beim falschen Material auch schonmal 10-15% mehr Bitrate.
Ist beides aktiv und man hat das Ziel mit hoher Qualität zu encoden, kommt man bei 15-30% niedrigeren Bitraten von der Effizienz her schon in die Nähe der nächsten Codec Generationen wie AV1 und muss nicht schon wieder Encoder und Decoder Hardware tauschen. Ich finde vorerst aber vor allem auch gut, dass ich mich bei mode 2 nicht mehr um adaptive quantisation scheren muss, da er, so meine ersten Eindrücke, generell hohe Qualität in allen Bereichen (detaillierte und weniger detaillierte) zu erzeugen scheint.

Wenn man allerdings möglichst viel Bitrate auf kosten von Details einsparen will und gerne mal 4k schaut, das irgendwie häufig sobald nur ein bißchen Bewegung im Bild ist verdammt nach 1080p oder schlechter aussieht, ist man allerding mit lookahead-mode 1 und niedrigen aq-strength Werten, bzw. 0/Auto besser bedient  Wink  Big Grin
Reply
#28
Ich hab's oben schonmal angeschnitten...
Um weiter Bitrate einzusparen, ohne mit niedrigerer aq-strength zu viele Details aus bestimmten Flächen rauszubügeln würde ich abhängig davon wie viele "echte" Details das Ausgangsmaterial hat, und wieviel davon nur Rauschen ist folgendes probieren:
RemoveGrain(clip, mode=9) -> reduziert Grain an der Grenze der Wahrnehmungsschwelle und spart 5-10% je nach Material
zusätzlich den Denoiser:
FluxSmoothST(clip) -> spart weitere 5-10%
Wenn's noch mehr sein soll (nochmal ca. 5%), und man z.B. nerviges Farbflackern/Noise in dunklen Bereichen abschwächen will, die Spatial-Schwelle auf mindestens 128 und höchstens 168 anheben (bei Werten jenseits von 170 habe ich schon Banding festgestellt und viel bringen tut weiteres anheben ohnehin nicht).
FluxSmoothST(clip, spatial_threshold=128)
Die temporal Schwelle sollte man nicht oder höchstens um 1-2 anheben, sonst hat man sehr schnell banding.

Beide Filter verbrauchen sehr wenig CPU Power, obwohl FluxSmoothST sogar temporal arbeitet, also vorherige/folgende Frames miteinander vergleicht.
Das Encoding wird also null gebremst, wenn man mit NVEncC encoded. Selbst mein steinalter FX-8350 taktet da z.T. nichtmal auf höchste Taktrate hoch und eiert im idle rum, und das bei 4K!
Dann ist man mit den Bitraten bei aktiviertem tf-level 4, spätestens wenn man noch lookahead-level 2 oder 3 nutzt, bei den Bitraten tatsächlich im Bereich von AV1 & Co und die schaffen imho niedrige Bitraten auch nur, indem sie Grain z.T. massiv (bis hin zu einem absurd synthetischen look) reduzieren!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)