Selur's Little Message Board

Full Version: NVEnc Features werden trotz gpu support nicht unterstützt
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5
Hi,

habe mir in der neuesten Version NVEnc und die unterstützen Features nochmals angesehen.
Manche features wie bframes werden bei h.265 aus irgendwelchen Gründen von meiner Karte durch NVEncC.exe wohl nicht unterstützt, obwohl sie laut Wikipedia bei den 6th Gen Karten wie TU106 eigentlich unterstützt werden müssten. Da weiß ich noch keine Lösung, außer dass bei Wikipedia evtl. Mist steht.

Anders verhält es sich bei adaptive quantization. Mindestens die spatial adaptive quantization wird von NVEnc bei meiner Karte untersützt. Sie ist auch in der GUI eingeblendet und auswählbar, aber Hybrid setzt den Parameter nicht.
Hab's mal mit Staxrip verglichen, AQ wird wohl tatsächlich nicht nur gesetzt, sondern auch verwendet:
Code:
HYBRID:
NVEncC.exe" --avhw  -i "C:\TMP\Hybrid NVEnc Test\HDR10-Sony-Bravia-OLED-demolandia 60fps 10bit yuv420.mp4" --fps 59.940 --codec h265 --profile main10 --level 6.2 --tier high --sar 1:1 --lookahead 32 --output-depth 10 --cqp 22 --gop-len 250 --ref 7 --bframes 0 --no-b-adapt --mv-precision Q-pel --preset quality --colorrange limited --colormatrix bt2020c --vpp-resize auto --output-res 3840x2160 --vpp-gauss disabled --cuda-schedule sync --output
---------------------------------
avcuvid: Unknown input option: framerate=60000/1001, ignored.
NVEncC (x64) 7.05 (r2376) by rigaya, Nov 21 2022 13:10:39 (VC 1929/Win)
OS Version     Windows 10 x64 (19043) [UTF-8]
CPU            AMD FX(tm)-8350 Eight-Core Processor [4.64GHz] (4C/8T)
GPU            #0: NVIDIA GeForce GTX 1650 (896 cores, 1605 MHz)[PCIe2x16][512.96]
NVENC / CUDA   NVENC API 11.1, CUDA 11.6, schedule mode: sync
Input Buffers  CUDA, 41 frames
Input Info     avcuvid: H.265/HEVC, 3840x2160, 60000/1001 fps
AVSync         vfr
Vpp Filters    copyDtoD
Output Info    H.265/HEVC main10 @ Level 6.2
3840x2160p 1:1 59.940fps (60000/1001fps)
Encoder Preset quality
Rate Control   CQP  I:22  P:22  B:22
ChromaQPOffset cb:0  cr:0
Lookahead      on, 32 frames, Adaptive I Insert
GOP length     250 frames
B frames       0 frames [ref mode: disabled]
Ref frames     7 frames
AQ             off
CU max / min   auto / auto
VUI            matrix:bt2020c,range:limited
Others         mv:Q-pel


STAXRIP:
NVEncC64.exe --avhw  --cqp 22 --codec h265 --preset P7 --output-depth 10 --profile main10 --tier high --level 6.2 --aq --aq-strength 8 --bframes 0 --ref 7 --gop-len 250 --lookahead 32 --no-b-adapt --colormatrix bt2020nc --colorprim bt2020 --transfer smpte2084 --chromaloc 2 -i "C:\TMP\Hybrid NVEnc Test\HDR10-Sony-Bravia-OLED-demolandia 60fps 10bit yuv420.mp4" -o "C:\TMP\Hybrid NVEnc Test\HDR10-Sony-Bravia-OLED-demolandia 60fps 10bit yuv420_temp\HDR10-Sony-Bravia-OLED-demolandia 60fps 10bit yuv420_new_out.h265"
-----------------------------------------------------------------------
NVEncC (x64) 6.01 (r2167) by rigaya, Apr 29 2022 06:01:58 (VC 1929/Win)
OS Version     Windows 10 x64 (19043) [UTF-8]
CPU            AMD FX(tm)-8350 Eight-Core Processor [4.64GHz] (4C/8T)
GPU            #0: NVIDIA GeForce GTX 1650 (896 cores, 1605 MHz)[PCIe2x16][512.96]
NVENC / CUDA   NVENC API 11.1, CUDA 11.6, schedule mode: auto
Input Buffers  CUDA, 41 frames
Input Info     avcuvid: H.265/HEVC, 3840x2160, 60000/1001 fps
AVSync         vfr
Vpp Filters    copyDtoD
Output Info    H.265/HEVC main10 @ Level 6.2
               3840x2160p 1:1 59.940fps (60000/1001fps)
Encoder Preset quality
Rate Control   CQP  I:22  P:22  B:22
ChromaQPOffset cb:0  cr:0
Lookahead      on, 32 frames, Adaptive I Insert
GOP length     250 frames
B frames       0 frames [ref mode: disabled]
Ref frames     7 frames
AQ             on
CU max / min   auto / auto
VUI            matrix:bt2020nc,colorprim:bt2020,transfer:smpte2084,chromaloc:topleft
Others         mv:auto

Analog verhält es sich bei h.264, nur dass da meine Karte sowohl spatial als auch zusätzlich temporal AQ unterstützt. Es wird beides in der GUI angezeigt, aber die Parameter werden nicht gesetzt.
Auch 10bit scheint bei h.264 in Staxrip zu gehen, das wird von Hybrid in der GUI ausgeblendet. Was h.264 angeht müsste ich noch nachlegen, was Debug etc. angeht.
Anbei erstmal test video und der Debug zu h.265 und nicht verwendeter temporal AQ:
https://mega.nz/folder/MgxATIRI#F6gCOCD1pibNUD0FfMwoow

cu, mogobime
Heute unterwegs, schau ich morgen nach der Arbeit drauf.
Hab jetzt auch mal NVEnc h264 unter die Lupe genommen, und bin auf folgendes gestoßen:
--output-depth 10 wird nicht in GUI angeboten, obwohl unterstützt (siehe Staxrip)
--aq und --aq-temporal wird nicht gesetzt, obwohl supported (siehe Staxrip)
--multiref-l0 und --multiref-l1 werden in GUI eingeblendet, obwohl unsupported (reines h265 feature?)
--weightp wird nicht gesetzt, auch wenn b-frames disabled sind (sollte dann unterstützt werden)

Hab mal einen Debug bereits ab öffnen der Datei und anschließendem umschalten von x264 auf NVEnc h264 gemacht, in der Hoffnung, dass da igendwo die Erkennung der features meiner Karte mit drin ist:
https://mega.nz/file/Jx5AhDyZ#6y2GY1VfST...oGvcLpCoYU
Mist... Das von Staxrip erzeugte h264 file scheint laut mediainfo gar kein 10 bit file zu sein, obwohl die Option von NVEnc ohne Fehlermeldung geschluckt wird.
Bei allen möglichen anderen Optionen wurde immer die entsprechende Fehlermeldung von NVEnc ausgegeben.
Keine Ahnung ob Mediainfo jetzt falsche Daten aus dem Header anzeigt, oder ob das file wirklich 8 bit ist.
x264 kann ja tatsächlich 10 Bit h264 files erzeugen, also lässt es der Standard ja zu.

Keine Ahnung wie man sowas ultimativ rausfinden kann...

EDIT: Hab deswegen übrigens Staxrip die NVEnc Version von Hybrid untergejubelt ohne dass sich was geändert hat.
Hybrid sollte nur die Sachen erlauben, die laut '--check-features' unterstützt werden.
Schaue aber wie gesagt heute nach der Arbeit mal drauf.

Cu Selur
Was gibt 'NVEncC --check-features' bei Dir aus?
It should look 'similar' to:
Code:
NVEncC (x64) 7.06 (r2388) by rigaya, Dec 10 2022 12:26:56 (VC 1929/Win)
  [NVENC API v12.0, CUDA 10.1]
reader: raw, y4m, avi, avs, vpy, avsw, avhw [H.264/AVC, H.265/HEVC, MPEG2, VP8, VP9, VC-1, MPEG1, MPEG4, AV1]

Environment Info
OS : Windows 11 x64 (22621) [UTF-8]
CPU: AMD Ryzen 9 7950X 16-Core Processor [5.77GHz] (16C/32T)
RAM: Used 8347 MB, Total 64632 MB

#0: NVIDIA GeForce RTX 4080 (9728 cores, 2505 MHz)[PCIe1x16][527.56]
NVEnc features
Codec: H.264/AVC
Encoder Engines           2
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           2
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

Codec: AV1
Encoder Engines           2
Max Bframes               7
B Ref Mode                3 (each + only middle)
RC Modes                  3 (CQP, CBR, VBR)
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                 23 (7.3)
Min Level                 0 (2)
4:4:4                     no
Min Width                 192
Max Width                 8192
Min Height                128
Max Height                8192
Multiple Refs             yes
Max LTR Frames            2
Dynamic Resolution Change yes
Dynamic Bitrate Change    yes
Forced constant QP        yes
Dynamic RC Mode Change    no
Subframe Readback         yes
Constrained Encoding      no
Intra Refresh             yes
Custom VBV Bufsize        yes
Dynamic Slice Mode        no
Ref Pic Invalidiation     yes
PreProcess                no
Async Encoding            yes
Max MBs                   262144
Lossless                  no
SAO                       no
Me Only Mode              0 (no)
Lookahead                 yes
AQ (temporal)             yes
Weighted Prediction       no
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)

Nur wenn check-features '10bit depth yes' meldet erlaubt Hybrid auch 10bit encoding.

Cu Selur
So siehts's bei mir aus:
Code:
NVEncC (x64) 7.05 (r2376) by rigaya, Nov 21 2022 13:10:39 (VC 1929/Win)
  [NVENC API v12.0, CUDA 10.1]
reader: raw, y4m, avi, avs, vpy, avsw, avhw [H.264/AVC, H.265/HEVC, MPEG2, VP8, VP9, VC-1, MPEG1, MPEG4, AV1]

Environment Info
OS : Windows 10 x64 (19043) [UTF-8]
CPU: AMD FX(tm)-8350 Eight-Core Processor [4.64GHz] (4C/8T)
RAM: Used 7455 MB, Total 16276 MB

#0: NVIDIA GeForce GTX 1650 (896 cores, 1605 MHz)[PCIe2x16][512.96]
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            1 (field mode)
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                 33
Max Width                 4096
Min Height                17
Max Height                4096
Multiple Refs             no
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               0
B Ref Mode                0 (no)
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                 65
Max Width                 8192
Min Height                33
Max Height                8192
Multiple Refs             no
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)             no
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

10 Bit bei h.264 scheint also leider nicht zu funktionieren.

Was auch nicht so wild wäre, wenn h.265 sich vernünftig mit b-frames & co nutzen ließe.
Leider auch Fehlanzeige, sch... Wikipedia, da bin ich voll reingefallen.

Vermutlich wird aber h.265 auch ohne b-frames noch eine höhere Kodiereffizienz haben, wenn zumindest AQ Spatial (temporal geht bei mir wohl nur bei h.264) genutzt werden kann.
Sowohl spatial als auch temporal AQ werden bei mir bei beiden Codecs nicht als Parameter übergeben, obwohl ausgewählt.
Okay, wie erwartet, geht H.264 mit 10bit nicht, da der Encoderchip es nicht kann (der Decoderchip auch nich Wink), siehe auch:
https://docs.nvidia.com/video-technologi...tion-note/
(persönlich nervt es mich, dass die neuen Karten nur 4:2:0 av1 können Wink)
=> sieht für mich so aus, als ob:
1. NVEncC die Option einfach ignoriert und keinen Fehler wirft wie sonst.
2. StaxRip fälschlicherweise eine Option anbietet, die der Encoderchip gar nicht kann.

Quote:--multiref-l0 und --multiref-l1 werden in GUI eingeblendet, obwohl unsupported (reines h265 feature?)
Ne, ist kein reines H.264 feature. Wird bei mir ja auch unterstützt. Wink
Das Problem ist, da ist ein bug in der Gui, den ich irgendwie nicht nachvollziehen konnte und dann vergessen hatte, dass das Problem existiert. Angel
Ist irgendein Initialisierungsproblem, da die Regler beim ersten Laden auch verschiebbar sind, wenn die Box deaktiviert ist. Sad

Quote:--weightp wird nicht gesetzt, auch wenn b-frames disabled sind (sollte dann unterstützt werden)
Das ist ein Bug, bzw. ein 'missing feature', da ich vergessen habe den code für die command line zu schreiben. Smile

Cu Selur
Und nicht vergessen, dass weder temporal, noch spatial AQ bei beiden Codecs gesetzt wird, das ist imho das wichtigste missing feature Wink

Mich ärgert diese verarsche mit dem mangelhaften h.265 support bei meiner Karte ziemlich. Als ob h.265 sowas krass neues ist
Die Karte hab ich ausschließlich wegen der angeblich besseren Encoding-Fähigkeiten bei h.265 gekauft, gaming Leistung u.ä. war mir Wurst. Hätte ich gleich bei der gebrauchten, günstigeren und noch sparsameren Nvidia Quadro T1000 bleiben können. Kann sogar sein, dass die höhere Rechenkapazitäten bei opencl hatte... Wenn ich das jetzt nochmal recherchiere ärgere ich mich wahrscheinlich gleich doppelt, dass ich die zurückgesendet habe Dodgy

Das motiviert auch nicht gerade eine andere Karte zu kaufen, das wird ja nirgendwo richtig transparent gemacht, was für features tatsächlich unterstützt werden. Jedenfalls hab ich nirgends was gefunden...
Quote:Und nicht vergessen, dass weder temporal, noch spatial AQ bei beiden Codecs gesetzt wird, das ist imho das wichtigste missing feat
Das geht bei mir,..

ohne:
Quote:NVEnc --y4m -i - --fps 25.000 --codec h264 --profile high --level auto --sar 1:1 --lookahead 16 --vbr 0 --vbr-quality 0.00 --gop-len 0 --ref 3 --bframes 3 --direct auto --bref-mode disabled --no-b-adapt --mv-precision Q-pel --cabac --deblock --preset default --colorrange limited --colormatrix undef --cuda-schedule sync --keyfile GENERATED_KEY_FILE --output OUTPUTFILE

mit spatial an:
Quote:NVEnc --y4m -i - --fps 25.000 --codec h264 --profile high --level auto --sar 1:1 --lookahead 16 --vbr 0 --vbr-quality 0.00 --aq --aq-strength 0 --gop-len 0 --ref 3 --bframes 3 --direct auto --bref-mode disabled --no-b-adapt --mv-precision Q-pel --cabac --deblock --preset default --colorrange limited --colormatrix undef --cuda-schedule sync --keyfile GENERATED_KEY_FILE --output OUTPUTFILE

mit temporal an:
Quote:NVEnc --y4m -i - --fps 25.000 --codec h264 --profile high --level auto --sar 1:1 --lookahead 16 --vbr 0 --vbr-quality 0.00 --aq-temporal --gop-len 0 --ref 3 --bframes 3 --direct auto --bref-mode disabled --no-b-adapt --mv-precision Q-pel --cabac --deblock --preset default --colorrange limited --colormatrix undef --cuda-schedule sync --keyfile GENERATED_KEY_FILE --output OUTPUTFILE

mit spatial und temporal an:
Quote:NVEnc --y4m -i - --fps 25.000 --codec h264 --profile high --level auto --sar 1:1 --lookahead 16 --vbr 0 --vbr-quality 0.00 --aq --aq-strength 0 --aq-temporal --gop-len 0 --ref 3 --bframes 3 --direct auto --bref-mode disabled --no-b-adapt --mv-precision Q-pel --cabac --deblock --preset default --colorrange limited --colormatrix undef --cuda-schedule sync --keyfile GENERATED_KEY_FILE --output OUTPUTFILE


Quote:Das motiviert auch nicht gerade eine andere Karte zu kaufen, das wird ja nirgendwo richtig transparent gemacht, was für features tatsächlich unterstützt werden. Jedenfalls hab ich nirgends was gefunden...
Chipsatz checken und dann im SDK schauen. Siehe auch: https://en.wikipedia.org/wiki/Nvidia_NVENC

Cu Selur
Pages: 1 2 3 4 5