Posts: 10.929
Threads: 56
Joined: May 2017
18.12.2022, 21:06
(This post was last modified: 18.12.2022, 21:11 by Selur.)
Okay, das Problem ist:
MediaInfo berichtet:
Mastering display color primaries : BT.709
Aber Hybrid (und ich) hat keine Ahnung wie dies interpretiert werden soll.
Normalerweise steht da sowas wie:
Mastering display color primaries : R: x=0.680000 y=0.320000, G: x=0.265000 y=0.690000, B: x=0.150000 y=0.060000, White point: x=0.312700 y=0.329000
oder "Display P3"/"DCI P3"/"BT.2020"
if (line == QString("Display P3")) {
line = QString("R(x=0.680, y=0.320), G(x=0.265, y=0.690), B(x=0.150, y=0.060), White point(x=0.3127, y=0.3290)"); // DCI-P3 D65
} else if (line == QString("DCI P3")) {
line = QString("R(x=0.680, y=0.320), G(x=0.265, y=0.690), B(x=0.150, y=0.060), White point(x=0.314, y=0.3510)"); // DCI-P3 Theater
} else if (line == QString("BT.2020")) {
line = QString("R(x=0.708, y=0.292), G(x=0.170, y=0.797), B(x=0.131, y=0.046), White point(x=0.3127, y=0.3290)"); // Rec. ITU-R BT.2020-2
}
Keine Ahnung, was BT.709 bei HDR Material interpretiert werden soll.
Hab mal bei Doom9 gepostet: https://forum.doom9.org/showthread.php?p...ost1979905
Cu Selur
Posts: 77
Threads: 8
Joined: May 2022
Klingt logisch
Hatte das nur auf cq umgestellt um mit Staxrip vergleichen zu können, da das kein vbrhq modus unterstützt, was imho ja das Äquivalent zum CRF bei h.264 ist.
Eigentlich will ich vbrhq nutzen, da geht's ja dann.
multiple refs werden wie erwähnt auch eigeblendet, obwohl die Karte sie anscheinend nicht unterstützt.
Posts: 10.929
Threads: 56
Joined: May 2017
Ne MultiRefs wurde einfach die GUI nicht angepasst.
xxxhq modes gibt nicht mehr in NVEncC, was Du willst ist 'constant quality', nicht 'constant quantizer'.
Posts: 10.929
Threads: 56
Joined: May 2017
habs
Rec.709: --master-display G(15000,30000)B(7500,3000)R(32000,16500)WP(15635,16450)L(10000000,1) --max-cll 1000,1
RGB: G(x=0.30, y=0.60), B(x=0.150, y=0.060), R(x=0.640, y=0.330), WP(x=0.3127,y=0.329), L(max=1000, min=0.0000)
Posts: 77
Threads: 8
Joined: May 2022
(18.12.2022, 21:13). Selur Wrote: Ne MultiRefs wurde einfach die GUI nicht angepasst.
xxxhq modes gibt nicht mehr in NVEncC, was Du willst ist 'constant quality', nicht 'constant quantizer'.
ja, das meine ich, constant quality. Heist tatsächlich einfach --vbr 0 und nicht --vbrhq. Weiß auch nicht mehr, wo ich das gelesen hab.
Staxrip unterstützt das jedenfalls nicht. Keine Ahnung warum da nur cq angeboten wird. Ziemlicher Blödsinn, wer braucht das schon. Constant quality ist imho der sinnvollste Modus und der fehlt.
Und u.U. auf Kosten der Qualität auf eine bestimmte Bitrate hin zu encoden finde ich heutzutage ebenfalls unsinnig. Wird ja nicht mehr auf CD/DVD gebrannt...
Posts: 10.929
Threads: 56
Joined: May 2017
Hab Dir nen Link zu ner neuen Dev Version zum Testen geschickt.
Cu Selur
Posts: 77
Threads: 8
Joined: May 2022
Sieht so aus als ob jetzt alle Unstimmigkeiten bei NVEnc beseitigt sind. Aucht die BT 709 Fehlermeldung taucht nicht mehr auf.
HEVC Encoding ohne b-frames ist allerdings einigermaßen witzlos. Da kommt man bei der Kompression voll in die Regionen von GPU basiertem AVC encoding mit b-frames. Einziger Vorteil ist dann, dass man 10 bit nutzen kann. Dafür ist HEVC encoding aber auch langsamer.
Der Volta Chip ist und bleibt in der Hinsicht imho eine ziemliche Mogelpackung... HEVC war ja schon 5 Jahre aufm Markt, als der entwickelt wurde. Warum man da so halbe Sachen gemacht hat erklärt sich mir irgendwie naheliegenderweise mit dem Wunsch nach Umsatzsteigerung in den Folgejahren.
Wird wohl über kurz oder lang auf eine GTX 1660 Ti oder so rauslaufen, auch wenn die mit 120W eine deutlich höhere TDP als geplant haben.
Oder ein gebrauchtes RTX A2000 Stromsparwunder mit 70W - kostet aktuell ca. 70€ mehr, das wären also bei der absehbaren Kostenentwicklung etwa 140 KWh - oder 2800 h bzw. 117 Tage Encoding mit 50W weniger Verbrauch Wird wohl betriebswirtschaftlich nicht ganz aufgehen, aber es geht ja auch bisschen ums Prinzip
Meine Sorge ist da nur ob die überhaupt noch 117 Tage Encoding schafft, weil sie möglicherweise wegen dieses ganzen Mining Hypes zernudelt wurde.
Du hattest ja glaube ich schon jede Menge Karten in Nutzung. Weißt du wie es um die Lautstärke dieses Nvidia Standard Lüfter Designs bestellt ist? Ist das unter Last ne Turbine, die fürs Rechenzentrum designed ist?
https://www.ebay.de/itm/364078825328?has...R5jCncelYQ
Posts: 10.929
Threads: 56
Joined: May 2017
Sorry, keine Ahnung, hab immer nur Karten mit mehr Lüftern, die ich teilweise durch einen Wasserkühler ersetzt habe.
Mit einem Lüfter hatte ich keine Karten.
Cu Selur
Posts: 77
Threads: 8
Joined: May 2022
So, neue (gebrauchte) RTX A2000 70W Stromsparwunder Karte ist da
Hab mich gleich nochmal über NVEncC gebückt, und drei Dinge sind mir aufgefallen, "clear all cached tool infos" habe ich zuvor durchgeführt:
1.) --ref ist bei mir bei h265 auf 7 begrenzt (im Gegensatz zu h264, da sind max 16 möglich), ich kann aber keine Einschränkung bei --check-features feststellen. "Max LTR Frames" (laut --check-features auf 7 begrenz) ist jedenfalls ein anderer Wert. Long Term Reference Frames sind wohl nur für Streaming relevant und stellen Referenzen dar, wenn im Stream Frames ausfallen.
Ausgabe --check-features:
#0: NVIDIA RTX A2000 (3328 cores, 1200 MHz)[PCIe2x16][527.27]
NVEnc features
Codec: H.264/AVC
Encoder Engines 1
Max Bframes 4
B Ref Mode 3 (each + only middle)
RC Modes 63 (CQP, CBR, CBRHQ, VBR, VBRHQ)
Field Encoding 0 (no)
MonoChrome 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
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
10bit depth no
Codec: H.265/HEVC
Encoder Engines 1
Max Bframes 5
B Ref Mode 3 (each + only middle)
RC Modes 63 (CQP, CBR, CBRHQ, VBR, VBRHQ)
Field Encoding 0 (no)
MonoChrome no
Quater-Pel MV yes
B Direct Mode no
Max Temporal Layers 0
Hierarchial P Frames no
Hierarchial B Frames no
Max Level 186 (6.2)
Min Level 30 (1)
4:4:4 yes
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
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)
2.) In der Nvidia Video codec SDK documentation wird im letzten Punkt erwähnt, dass beim use case Recording/Archiving empfohlen wird --vbv-bufsize auf einen sehr hohen Wert von 4 Sekunden einzustellen (ich verstehe das so, dass das dann bei einem ~10Mbit/s encode ein Wert von 40000 wäre). Hybrid verwendet aber immer "auto" bzw. definiert den Wert nicht, wodurch laut report file auto gesetzt wird. Wäre also gut, wenn man diesen Wert individuell einstellen könnte. Ein Tooltip Hinweis wäre ebenfalls eine gute Sache, damit der user begreift, dass das anscheinend ein relevanter Wert ist, und wie man diesen einstellen sollte.
https://docs.nvidia.com/video-technologi...c-settings
3.) Kein Fehler, aber wäre vielleicht eine gute Ergänzung: --nonrefp ist anscheinend ebenfalls nur ein Streaming "low latency" feature, was möglicherweise bei normaler Verwendung nur sinnlos die Bitrate erhöht bzw. die Qualität mindert, da bestimmte P-Frames nicht als Referenzen dienen. Da wäre ein entsprechender Tooltip Hinweis ebenfalls eine gute Sache. Denke es gibt bis jetzt nur wenige User die großartig Ahnung von NVEncC haben und dankbar für entsprechende Hinweise sind. Ein Hauptverwendungszweck davon ist nunmal auch Streaming, aber für normale Zwecke scheinen bestimmte Features besser nicht verwendet zu werden. Oft verfährt man ja nach dem Motto "alles an, kost ja nix", wenn man sich nicht groß auskennt
cu, mogobime
Posts: 10.929
Threads: 56
Joined: May 2017
Quote:1.) --ref ist bei mir bei h265 auf 7 begrenzt (im Gegensatz zu h264, da sind max 16 möglich), ich kann aber keine Einschränkung bei --check-features feststellen
H.265 erlaubt nicht mehr Referenzen.
Quote:... Wäre also gut, wenn man diesen Wert individuell einstellen könnte. Ein Tooltip Hinweis wäre ebenfalls eine gute Sache, damit der user begreift, dass das anscheinend ein relevanter Wert ist, und wie man diesen einstellen sollte.
Die max. VBV Werte müssen dann durch die Level, Profile&Co Auswahl beschränkt werden.
Ist also etwas umständlicher.
Zu klären wäre auch: - Das letzte Mal als ich die Dokumentation gelesen hatte stand da auch öfters mal, dass sie nicht sicher VBV konform sind, was VBV etwas unsinnig macht. Ist dies immer noch der Fall?
- Wenn Profile, Level (Tier) gesetzt sind, schränkt der Encoder die VBV Werte korrekt ein?
Quote:Hybrid verwendet aber immer "auto" bzw. definiert den Wert nicht, wodurch laut report file auto gesetzt wird
Wie sind die vbv Werte bei 'auto' eingeschränkt? (sollten sie nicht auf die Profile/Level/Tier Maxima gestellt sein?)
Bzgl. der 4 Sekunden Empfehlung: Macht es nicht mehr Sinn da den maximal erlaubten Wert zu nehmen?
- Wie reagiert der Encoder, wenn man nicht legale Werte verwendet?
Da ich damals keine brauchbare Dokumentation gefunden hatte, hab ich keine Konfigurationsmöglichkeiten dafür gesetzt.
Wenn rigaya, eine Möglichkeit findet, die genutzten VBV Grenzen beim Starten mit auszugeben, könnte man testen.
Aktuell müsste man im SDK und im NVEncC Sourcecode suchen, was ich nicht machen werde.
-> Wenn Du mehr Details zu wie NVEnc VBV handelt geben kannst, kann ich schauen wie man das sinnig in Hybrid implementiert. Blind da Optionen einfügen, die eventuell den Encoder zum Absturz bringen oder nicht legales Material erstellen, erscheint mir nicht sinnig.
Quote:3.) Kein Fehler, aber wäre vielleicht eine gute Ergänzung: --nonrefp ist anscheinend
Non-reference P frames sind ja in erster Linie dafür da, um bei Fehlern im Stream/File möglichst schnell wieder erholen zu können.
Was für mich auch bei der Archivierung Sinn machen würde.
-> Werde Folgendes als Tool-Tip dran packen:
Quote:Automatically add non-reference P-frames:
Non-reference P frame coding is used to enhance coding efficiency in low-delay encoding configuration of Internet Video Coding (IVC).
Non-reference P frame coding applies a non-reference P frame with a fixed coding structure based on the magnitude of motion vectors (MVs), however, which unexpectedly degrades the coding efficiency for some sequences. These features are useful for error recovery during transmission across noisy mediums.
So unless you plan to stream the output, you probably don't want to enable this.
Quote:So, neue (gebrauchte) RTX A2000 70W Stromsparwunder Karte ist da
B-Frames. Hurra!
Quote:Oft verfährt man ja nach dem Motto "alles an, kost ja nix", wenn man sich nicht groß auskennt
Cu Selur
|