Selur's Little Message Board
[BUG] NVEnc h.265 - adaptive quantization scheint nicht zu funktionieren - Printable Version

+- Selur's Little Message Board (https://forum.selur.net)
+-- Forum: Hybrid - Support (https://forum.selur.net/forum-1.html)
+--- Forum: Probleme und Fragen (https://forum.selur.net/forum-4.html)
+--- Thread: [BUG] NVEnc h.265 - adaptive quantization scheint nicht zu funktionieren (/thread-4401.html)

Pages: 1 2 3


RE: NVEnc h.265 - adaptive quantization scheint nicht zu funktionieren - mogobime - 10.06.2026

Sonstiges zur aktuellen dev Version:

Hybrid hat laut report files den Aufruf --lookahead immer 2x im CLI Aufruf drin.

Und wenn man in der GUI beim Parameter "Transformation" unter adaptive quantisation was ändert, scheint sich im CLI Aufruf nichts zu ändern. Was auch immer der Parameter bewirken soll... In der Github Doku finde ich mit dem Schlagwort "transform" nichts was mit adaptive quantisation zu tun hat.

Bei bframes kann ich in der aktuellen dev version 5 einstellen, obwohl laut  NVEncC --check-features maximal 4 unterstützt werden. Wenn das grundsätzlich nach oben offen sein soll ist 5 imho zu wenig, deine Karte unterstützt ja beispielsweise 7.
In der Github Doku ist dazu nichts zu finden, GPT-5 mini sagt dazu 0-16 werden unterstützt...


RE: NVEnc h.265 - adaptive quantization scheint nicht zu funktionieren - mogobime - 10.06.2026

Keine Ahnung, warum ich im ersten Testlauf nicht mal einfach adaptive quantisation komplett weggelassen habe.
Ich schieb's auf Müdigkeit.
Denke hiermit ist der Beweis erbracht, dass adaptive quantisation Parameter gar nichts bewirken, wenn --lookahead-level 2 oder --lookahead-level 1 gesetzt sind:

[VBR27.5][preset quality][REF5_5_2][BF4][lookahead-level 1][tf-level 0][lookahead 32]                              -> 8004.16 kbps
[VBR27.5][preset quality][REF5_5_2][BF4][lookahead-level 2][tf-level 0][lookahead 32]                              -> 7746.09 kbps

Hab's im vorherigen Post der Übersicht halber ergänzt.


RE: NVEnc h.265 - adaptive quantization scheint nicht zu funktionieren - Selur - 10.06.2026

Ab besten fast Du es zusammen und postest es bei https://github.com/rigaya/NVEnc/issues
(kann ich sonst demnächst machen)


RE: NVEnc h.265 - adaptive quantization scheint nicht zu funktionieren - mogobime - 10.06.2026

(10.06.2026, 03:20)mogobime Wrote: Sonstiges zur aktuellen dev Version:
...
Bei bframes kann ich in der aktuellen dev version 5 einstellen, obwohl laut  NVEncC --check-features maximal 4 unterstützt werden. Wenn das grundsätzlich nach oben offen sein soll ist 5 imho zu wenig, deine Karte unterstützt ja beispielsweise 7.
In der Github Doku ist dazu nichts zu finden, GPT-5 mini sagt dazu 0-16 werden unterstützt...

Sorry, vergiss das bitte mal ganz schnell wieder. Bin versehentlich bei --check-features bei h264 statt bei h265 gelandet. h265 unterstützt 5 bframes, also alles gut  Blush

(10.06.2026, 18:22)Selur Wrote: Ab besten fast Du es zusammen und postest es bei https://github.com/rigaya/NVEnc/issues
(kann ich sonst demnächst machen)

Kann gerade keine E-Mails auf dem E-Mail Account, den ich für Github verwende empfangen. Irgendwas spinnt bei web.de.
Würde dir aber trotzdem gerne was abnehmen und den Text dazu schreiben.

Vorher will ich aber noch versuchen, ob man NVEncC nicht doch irgendwelche Fehlermeldungen entlocken kann, wenn man adaptive quantisation parameter bei gesetztem lookahead-level 1-3 setzt.
Vielleicht können die höhreren lookahead-level doch Wasser in Wein verwandeln und ersetzen AQ.
Ein weiterer Chat mit GPT-5 Mini hat mich verunsichert. Das ist sich mal wieder völlig sicher, dass das ein gewolltes Verhalten ist, und die höheren lookahead-level adaptive quantisation durch einen eigenen "erweiterten Vorwärts‑Analysepfad (Mehr‑Frame‑Analyse), der interne Raten‑ und Qualitätsentscheidungen zentralisiert" ersetzen. Hat aber vorher auch schon anderweitig halbgaren Stuss verzapft...

Hier ein Auszug aus dem Chat:
Quote:...
mogobime:

Setzt man beim Parameter --lookahead-level Werte höher als 0, bewirkt das setzen der Parameter --aq --aq-strength und --aq-temporal keine Änderungen am ausgegebenen Video. Belässt man lookahead-level auf dem Wert 0, funktionieren die Parameter für adaptive quantisation. Wie ist dieses Verhalten zu bewerten?

GPT-5 mini:
Das Verhalten ist erwartbar und logisch aus Encoder‑Design‑Sicht: Lookahead aktiviert einen erweiterten Vorwärts‑Analysepfad (Mehr‑Frame‑Analyse), der interne Raten‑ und Qualitätsentscheidungen zentralisiert. Wenn Lookahead > 0 läuft, übernimmt dessen Analyse und Steuerung die Anpassungen, so dass die separaten AQ‑Parameter (--aq, --aq-strength, --aq-temporal) nicht mehr wirken. Bei lookahead=0 wird die einfachere, lokale AQ‑Logik verwendet und die AQ‑Parameter wirken direkt.

Bewertung in Kürze:

    Technisch sinnvoll: Vermeidet doppelte/konkurrierende Steuermechanismen und nutzt eine konsistente Analyse‑Quelle.
    Praktisch: Wenn du feingranulare AQ‑Kontrolle willst, setze lookahead=0; wenn du bessere langfristige Ratenverteilung/Qualität willst, aktiviere Lookahead und vertraue dessen integrierter AQ/Ratecontrol.
    Empfehlung: Für qualitativ wichtiges Material mit Bewegung und Szenenwechseln Lookahead>0; für gezielte AQ‑Tuning oder geringere Latenz lookahead=0 und dann --aq/--aq-strength/--aq-temporal verwenden.

mogobime:
Warum gibt der Encoder dann keine Fehlermeldungen aus, wenn unnötige Parameter gesetzt werden?

GPT-5 mini:
Kurz: Weil das Verhalten aus Design‑ und Kompatibilitätsgründen so implementiert ist — der Encoder ignoriert überflüssige Optionen statt fehlschlagen.

Wesentliche Gründe:

    Robustheit und Nutzerfreundlichkeit: Ignorieren verhindert unnötige Fehler bei komplexen Kommandozeilen und erlaubt Scripten/Presets mit optionalen Parametern.
    Abwärtskompatibilität: Ältere Presets/Workflows, die AQ‑Parameter setzen, bleiben nutzbar, auch wenn Lookahead aktiviert wurde.
    Interne Zuständigkeits‑Logik: Lookahead übernimmt die relevanten Entscheidungen; AQ‑Flags sind dann nicht mehr relevant, aber nicht „falsch“ im Sinne eines Syntaxfehlers.
    Fehlerwahrscheinlichkeit vermeiden: Viele Optionen sind kontextabhängig; statische Validierung könnte legitime Kombinationen fälschlich blockieren.
    Implementationsaufwand: Explizite Warnungen/Fehlermeldungen für jede inaktive Option erfordern Pflege; Entwickler bevorzugen oft stilles Ignorieren oder optional Warnungen.
...



RE: NVEnc h.265 - adaptive quantization scheint nicht zu funktionieren - mogobime - 10.06.2026

Leider spinnt mein web.de account immer noch, mit dem ich bei github angemeldet bin und ich kann deswegen gerade kein issue eröffnen.
Mir ist mit --loglevel debug nichts ungewöhnliches aufgefallen.
Im Gegenteil, sowohl die lookahead optionen, wie auch die aq optionen werden nochmal brav tabellarisch aufgelistet, ohne das irgendwas bemängelt wird.
Kann natürlich nicht garantieren, dass bei der Menge, die da ausgegeben wird mir nicht irgendwas entgangen ist.
--loglevel error und warning geben bei mir gar nichts aus...

Wenn du willst, kannst du ja ein issue eröffnen, hier ein auf die schnelle entworfener Text, eventuell kann man ja noch die 2 7z files mit den report files anhängen:

I noticed while using --lookahead >0 that changes to the adaptive quantization parameters do not result in any changes to the output file. The generated files always have the same bitrate, regardless of whether, for example, --aq-strength 0, 1, 3, or 13 is specified. Setting --aq-temporal also does not change the bitrate. Is this intended behavior or a bug? I haven't noticed any error messages regarding the set adaptive quantization parameters when using --lookahead >0 with --loglevel debug. Here are some examples from test runs: [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 13][aq-temporal][lookahead-level 2][tf-level 4][lookahead 32] -> 6991.40 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 03][aq-temporal][lookahead-level 2][tf-level 4][lookahead 32] -> 6991.40 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 01][aq-temporal][lookahead-level 2][tf-level 4][lookahead 32] -> 6991.40 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 00][aq-temporal][lookahead-level 2][tf-level 4][lookahead 32] -> 6991.40 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 13][aq-temporal][lookahead-level 2][tf-level 0][lookahead 32] -> 7746.09 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 03][aq-temporal][lookahead-level 2][tf-level 0][lookahead 32] -> 7746.09 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 01][aq-temporal][lookahead-level 2][tf-level 0][lookahead 32] -> 7746.09 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 00][aq-temporal][lookahead-level 2][tf-level 0][lookahead 32] -> 7746.09 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 13][aq-temporal][lookahead-level 1][tf-level 4][lookahead 32] -> 6984.23 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 03][aq-temporal][lookahead-level 1][tf-level 4][lookahead 32] -> 6984.23 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 01][aq-temporal][lookahead-level 1][tf-level 4][lookahead 32] -> 6984.23 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 00][aq-temporal][lookahead-level 1][tf-level 4][lookahead 32] -> 6984.23 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 13][aq-temporal][lookahead-level 1][tf-level 0][lookahead 32] -> 8004.16 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 03][aq-temporal][lookahead-level 1][tf-level 0][lookahead 32] -> 8004.16 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 01][aq-temporal][lookahead-level 1][tf-level 0][lookahead 32] -> 8004.16 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 00][aq-temporal][lookahead-level 1][tf-level 0][lookahead 32] -> 8004.16 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 13][aq-temporal][lookahead-level 0][tf-level 4][lookahead 32] -> 11830.25 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 03][aq-temporal][lookahead-level 0][tf-level 4][lookahead 32] -> 7046.49 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 01][aq-temporal][lookahead-level 0][tf-level 4][lookahead 32] -> 5926.45 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 00][aq-temporal][lookahead-level 0][tf-level 4][lookahead 32] -> 9508.85 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 13][aq-temporal][lookahead-level 0][tf-level 0][lookahead 32] -> 15583.77 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 03][aq-temporal][lookahead-level 0][tf-level 0][lookahead 32] -> 10368.66 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 00][aq-temporal][lookahead-level 0][tf-level 0][lookahead 32] -> 13042.10 kbps [VBR27.5][preset quality][REF5_5_2][BF4][aq-strength 01][aq-temporal][lookahead-level 0][tf-level 0][lookahead 32] -> 9287.33 kbps [VBR27.5][preset quality][REF5_5_2][BF4][lookahead-level 1][tf-level 0][lookahead 32]                              -> 8004.16 kbps [VBR27.5][preset quality][REF5_5_2][BF4][lookahead-level 2][tf-level 0][lookahead 32]                              -> 7746.09 kbps ----------------------------------------------------------------------------------------------------------------------------------- I use the lastets german NVIDIA RTX Driver Release 595 (R595 U5 (596.59) 2026 Mai 27) Here is the --check-features output of my test system: NVEncC --check-features NVEncC (x64) 9.10 (r3505) by rigaya, Jan 15 2026 11:50:03 (VC 1944/Win)   [NVENC API v13.0, CUDA 11.8] reader: raw, y4m, avi, avs, vpy, avsw, avhw [H.264/AVC, H.265/HEVC, MPEG2, VP8, VP9, VC-1, MPEG1, MPEG4, AV1] others   nvml      : yes   nvrtc      : yes   nvvfx      : yes   ngx        : yes   nvof fruc  : yes   libass    : yes   libdovi    : yes   d3d11      : yes   libplacebo : yes   vmaf      : yes Environment Info OS : Windows 10 x64 (19043) [UTF-8] CPU: AMD FX(tm)-8350 Eight-Core Processor [4.53GHz] (4C/8T) RAM: Used 8590 MB, Total 32660 MB #0: NVIDIA RTX A2000 (3328 cores, 1200 MHz)[PCIe2x16][596.59] NVEnc features Codec: H.264/AVC Encoder Engines          1 Max Bframes              4 B Ref Mode                3 (each + only middle) RC Modes                  3 (CQP, CBR, VBR) Field Encoding            0 (no) MonoChrome                no Alpha Channel            no FMO                      no Quater-Pel MV            yes B Direct Mode            yes CABAC                    yes Adaptive Transform        yes Max Temporal Layers      4 Hierarchial P Frames      yes Hierarchial B Frames      yes Max Level                62 (6.2) Min Level                10 (1) 4:4:4                    yes 4:2:2                    no Min Width                145 Max Width                4096 Min Height                49 Max Height                4096 Multiple Refs            yes Max LTR Frames            8 Dynamic Resolution Change yes Dynamic Bitrate Change    yes Forced constant QP        yes Dynamic RC Mode Change    no Subframe Readback        yes Constrained Encoding      yes Intra Refresh            yes Custom VBV Bufsize        yes Dynamic Slice Mode        yes Ref Pic Invalidiation    yes PreProcess                no Async Encoding            yes Max MBs                  65536 Lossless                  yes SAO                      no Me Only Mode              1 (I,P frames) Lookahead                yes AQ (temporal)            yes Weighted Prediction      yes Temporal Filter          yes Lookahead Level          no Undirectional B          no Temporal SVC              yes MV-HEVC                  no 10bit depth              no Codec: H.265/HEVC Encoder Engines          1 Max Bframes              5 B Ref Mode                3 (each + only middle) RC Modes                  3 (CQP, CBR, VBR) Field Encoding            0 (no) MonoChrome                no Alpha Channel            yes Quater-Pel MV            yes B Direct Mode            no Max Temporal Layers      4 Hierarchial P Frames      no Hierarchial B Frames      no Max Level                186 (6.2) Min Level                30 (1) 4:4:4                    yes 4:2:2                    no Min Width                129 Max Width                8192 Min Height                33 Max Height                8192 Multiple Refs            yes Max LTR Frames            7 Dynamic Resolution Change yes Dynamic Bitrate Change    yes Forced constant QP        yes Dynamic RC Mode Change    no Subframe Readback        yes Constrained Encoding      yes Intra Refresh            yes Custom VBV Bufsize        yes Dynamic Slice Mode        yes Ref Pic Invalidiation    yes PreProcess                no Async Encoding            yes Max MBs                  262144 Lossless                  yes SAO                      yes Me Only Mode              1 (I,P frames) Lookahead                yes AQ (temporal)            yes Weighted Prediction      yes Temporal Filter          yes Lookahead Level          yes Undirectional B          yes Temporal SVC              yes MV-HEVC                  yes 10bit depth              yes NVDec features   H.264/AVC:  nv12, yv12   H.265/HEVC: nv12, yv12, yv12(10bit), yv12(12bit), yuv444, yuv444(10bit), yuv444(12bit)   MPEG1:      nv12, yv12   MPEG2:      nv12, yv12   MPEG4:      nv12, yv12   VP8:        nv12, yv12   VP9:        nv12, yv12, yv12(10bit), yv12(12bit)   VC-1:      nv12, yv12   AV1:        nv12, yv12, yv12(10bit)



RE: NVEnc h.265 - adaptive quantization scheint nicht zu funktionieren - Selur - 11.06.2026

Irgendwas stimmt noch nicht in Hybrid, ich kann tflevel aktuell nicht auswählen,... -> ich schau drauf, doch geht, hab mich verguckt Smile


RE: NVEnc h.265 - adaptive quantization scheint nicht zu funktionieren - Selur - 11.06.2026

ich hab nen Eintrag bei Github angelegt: https://github.com/rigaya/NVEnc/issues/773

Mal schauen was rigaya dazu sagt, ich vermute, das ist wohl so gewollt von NVIDIA. Smile
Je nachdem werde ich dann lookahead-level <> adaptive quantization deaktivieren, wenn das andere an ist.

Cu Selur


RE: NVEnc h.265 - adaptive quantization scheint nicht zu funktionieren - mogobime - 11.06.2026

(11.06.2026, 15:07)Selur Wrote: Irgendwas stimmt noch nicht in Hybrid, ich kann tflevel aktuell nicht auswählen,... -> ich schau drauf, doch geht, hab mich verguckt Smile

Schau lieber nochmal genau. Ich habe das Problem auch immer wieder. Könnte mit global abgespeicherten settings zusammenhängen, die ich abgespeichert habe.
Hybrid startet eigentlich mit bframes >=4, aber TFLevel geht erst, wenn ich dann wieder am bframes Regel hin und herdrehe und letztendlich wieder denselben Wert einstelle.
Könnte was systematisches in der NVEnc section sein. Passiert auch schonmal mit adaptive quantisation settings, dass die ohne Grund nicht auswählbar sind.
Wenn du da jetzt ohnehin möglicherweise drangehst um die zu deaktivieren, wenn lookahead >0 eingestellt ist...

(11.06.2026, 15:36)Selur Wrote: ich hab nen Eintrag bei Github angelegt: https://github.com/rigaya/NVEnc/issues/773

Mal schauen was rigaya dazu sagt, ich vermute, das ist wohl so gewollt von NVIDIA. Smile
Je nachdem werde ich dann lookahead-level <> adaptive quantization deaktivieren, wenn das andere an ist.

Cu Selur

Keine Ahnung was mit meinem Web.de Account für github los ist. Länger nicht genutzt und jetzt kann ich mich zwar einloggen und auch manche settings ändern, aber beim Versuch E-Mails zu schreiben oder Postfach Ordner zu öffnen kommen unverständliche Fehlermeldungen, und das mittlerweile seit 2 Tagen.
Bestimmt hat irgendein KI Bot meinen Account wegen nichtnutzung irgendwie halblebig deaktiviert. Glaube langsam nicht mehr, dass sich das nochmal ändert Sad
Wenn das in ein paar Tagen immer noch so ist, werde ich wohl versuchen ihn zu löschen, und hoffen, dass ich dieselbe E-Mail Adresse wieder vergeben bekomme...


RE: NVEnc h.265 - adaptive quantization scheint nicht zu funktionieren - Selur - 12.06.2026

Quote:There is no intended code in NVEnc iteself which blocks aq-strength when lookahead-level > 0.

I think it might be driver behavior, but there is not a way for NVEnc to know if the combination is supported, so unfortunately it would be difficult to add a warning.
Quelle: https://github.com/rigaya/NVEnc/issues/773#issuecomment-4691483335

=> Treiber oder Chip ¯\_(ツ)_/¯

Quote: Hybrid startet eigentlich mit bframes >=4, aber TFLevel geht erst, wenn ich dann wieder am bframes Regel hin und herdrehe und letztendlich wieder denselben Wert einstelle.
Sollte in der neuen dev gefixed sein. (ist in ca. 40min oben)

Cu Selur


RE: NVEnc h.265 - adaptive quantization scheint nicht zu funktionieren - mogobime - 12.06.2026

Danke für deine Mühe.

Ganz schön ärgerlich, hoffentlich versucht jemand bei Nvidia das Problem zu lösen. Ich verwende nun echt keinen exklusiven Treiber und eine professional Karte...
Hatte mich echt schon auf die verbesserte Kompression gefreut, das hat für mich NVEnc h.265 echt weit nach vorne gebracht.
Hatte mich gerade darauf eingelassen eher lookahead 1/2 zu setzen und TF-Level nicht zu nutzen und stattdessen mit removeGrain(2) und FluxSmoothST vorzufiltern, weil das ähnliche Bitraten erzeugt, ebenfalls temporal denoising beinhaltet aber die GPU entlastet und ca. 30% mehr speed bringt  Cry

Aber wenn die Bitratengewinne bei lookahead >0 womöglich hauptsächlich auf deutliche Qualitätsverluste durch Nichtnutzung von AQ zurückgeht, bringt's auch nix.
Werde wohl mal einen VMAF / SSIM / PSNR Vergleich mit lookahead 0 und aktiver adaptive quantisation mit aq-strength < 9 machen, da dürften irgendwo ähnliche Bitraten rauskommen. Sieht mir bei h265 normalerweise zu "glattgebügelt" aus, meistens geh ich nicht unter 12. Oder auch bei lookahead 0 mal AQ weglassen, ob ebenfalls so niedrige Bitraten rauskommen.
Wenn lookahead 1/2 einfach nur die Schärfe/Details aus detaillierten Bildbereichen rausnimmt, ist's für die Katz  Undecided  

Du konntest das auf deinem System mit den Studio Treibern  auch nachstellen, richtig?
Vielleicht kannst du ja nochmal bei Github klarstellen/erwähnen, dass es nicht nur um die AQ-strength geht, sondern dass sämtliche AQ Parameter ignoriert werden, und nicht etwa AQ auf Auto läuft, sondern das Ergebnis immer identisch mit gar keinen gesetzten AQ Parametern ist. Es wird also auch --aq und --aq-temporal ignoriert...