1

Topic: QSVEnc + B-frame Pyramid

Hi,

Hybrid 2017.04.10.1

Wenn bei QSVEnc der Encoding mode auf "icq with lookahead" oder "bitrate with lookahead" eingestellt wird, läßt sich "B-frame Pyramid" nur aktivieren wenn "Maximum number of consequtive b-frames" auf 1 steht.
Kannst du das mal bei Dir checken ?

Gruß ggrub

2

Re: QSVEnc + B-frame Pyramid

http://forum.selur.de/post14404.html#p14404 => ManyBframes hat da bei Dir kein O, ergo B-Pyramid geht nicht wenn Du mehrere B-Frames hast. wink

3

Re: QSVEnc + B-frame Pyramid

Das stimmt nicht, ich hab es getestet mit:

ffmpeg -i "f:\TEST-SOURCE\video.mkv" -f yuv4mpegpipe -pix_fmt yuv420p - | QSVEncc.exe --y4m -i - --input-buf 15 --slices 4 --fps 24000/1001 --codec h264 --la 8000 --maxbitrate 22000 --la-window-size 80 --bluray --quality best --bframes 3 --gop-len 24 --open-gop --sar 1:1 --b-pyramid --no-scenechange --lookahead-ds slow --trellis all --colorprim bt709 --transfer bt709 --colormatrix bt709 --output-file "D:\video.264"

4

Re: QSVEnc + B-frame Pyramid

Dann ist mir unklar wie die Tabelle zu interpretieren ist.

             CBR   VBR   AVBR  QVBR  CQP   VQP   LA    LAHRD ICQ   LAICQ VCM  
B_Pyramid     o     o     o     o     o     x     o     x     o     o     o    
 +Scenechange x     x     x     x     x     x     x     x     x     x     x    
 +ManyBframes o     o     o     o     o     x     x     x     o     x     o 

Wobei es sein kann, dass '--bluray' da irgendwie reinspielt (was leider nirgends dokumentiert was da genau passiert) und was einschränkt. Zumindest früher ging das nicht und hat mit dem was die Tabelle von check-features sagt übereingestimmt.

Cu Selur

5 (edited by ggrub08 2017-04-14 23:05:56)

Re: QSVEnc + B-frame Pyramid

Nee, das funktioniert auch ohne "--bluray", gerade getestet. Und bei "la" steht sehr wohl ein "O". smile

6

Re: QSVEnc + B-frame Pyramid

Wie gesagt, dann ist mir unklar wie die Tabelle zu interpretieren ist. Damals hat das alles gepasst (hatte ich damals durchgetestet).
Wenn Du damit was encodest, werden dann auch mehrere B-Frames hintereinander verwendet? (nicht das es jetzt nur nicht mehr zu abstürzen kommt sondern die Option einfach ignoriert wird)

Cu Selur

Ps.: Kann das bedingt morgen mal auf meinem Laptop testen, da ich in meinem Hauptsystem mittlerweile einen Ryzen 7 habe.

7 (edited by ggrub08 2017-04-14 23:21:48)

Re: QSVEnc + B-frame Pyramid

Hast recht, die Option wird einfach ignoriert. "Lookahead depth" wird ebenfalls ignoriert bzw. auf 40 gesetzt.

QSVEncC (x64) 2.62 (r1192) by rigaya, Jan  8 2017 23:11:24 (VC 1900/Win/avx2)
OS             Windows 7 (x64)
CPU Info       Intel Core i7-6700K @ 4.00GHz (4C/8T) <Kabylake>
GPU Info       Intel HD Graphics 530 (24EU) 350-1150MHz [95W] (21.20.16.4627)
Media SDK      QuickSyncVideo (hardware encoder) PG, 1st GPU, API v1.21
Async Depth    4 frames
Buffer Memory  d3d9, 15 input buffer, 63 work buffer
Input Info     y4m: yv12->nv12[AVX2], 1920x1080, 24000/1001 fps
Output         H.264/AVC  High @ Level 4.1
               1920x1080p 1:1 23.976fps (24000/1001fps)
Target usage   1 - best
Encode Mode    Bitrate Mode - Lookahead
Lookahead      depth 40 frames, quality slow
Windowed RC    80 frames, Max 22000 kbps
QP Limit       min: none, max: none
Trellis        for All frames
Ref frames     3 frames
Bframes        3 frames, B-pyramid: off
Max GOP Length 24 frames
Scene Change   off
Slices         4

"Lookahead depth" wird bei Hybrid/qsvenc nicht in der Kommandozeile angezeigt. Ist das so gewollt ? Ist auch egal weil es per Default auf 40 steht.

8

Re: QSVEnc + B-frame Pyramid

la-depth wird nur bei 'average bitrate' und 'quality variable bitrate' gesetzt, das könnte aber durchaus ein Fehler sein,... (zu lange her das ich den Code geschrieben habe big_smile)
-> Wenn Du nen Bug findest, fix ich ihn gerne. smile (mach mich jetzt aber erst mal ins Bett)

Cu Selur

9

Re: QSVEnc + B-frame Pyramid

Hi Selur,

Bugs sind da einige enthalten.

z.B. im Encoding mode: "bitrate with hrd lookahead". Die Bitrate läßt sich hier nicht einstellen. Egal welchen Wert ich einstelle, in der Kommandozeile steht:

QSVEnc --y4m -i - --input-buf 15 --slices 4 --fps 25 --codec h264 --la-hrd 23 --profile high --level 4.1 --quality best --bframes 3 --gop-len 24 --open-gop --sar 1:1 --no-scenechange --lookahead-ds slow --trellis all --colorprim bt709 --transfer bt709 --colormatrix bt709 --output-file OUTPUTFILE

Man beachte "la-hrd 23". Wo kommt die 23 her ? In der qsvenc-info steht:

--la-hrd <int> set bitrate in HRD-Lookahead mode (kbps)

Da sollte eigentlich die o.e. Bitrate stehen. In der Kommandozeile erscheint hier weder "lookahead depth" noch "lookahead window".

Ich verwende ja mittlerweile ausschließlich Hybrid mit qsvenc. An das Handling hab ich mich gut gewöhnt, aber eine Sache stört mich immer noch. Dieses Thema hatten wir ja schon mal im Gleitzforum. Da ging es aber um x264. Jetzt flehe ich dich an es in Hybrid bei qsvenc umzusetzen. wink
Bei Handbrake gibt´s das schon lange, und zwar das der User bei "Extra Options" eigene Settings einsetzen kann. Ich finde dieses Konzept einfach optimal.

Es ist gar nicht nötig in Hybrid beim QSVEnc-Modul (ich nenn das mal so) für jeden INTEL Prozessor mit Quicksync die entsprechenden Optionen/Settings je nach CPU-Variante zurechtzufriemeln. Die Standardoptionen reichen völlig aus. Handbrake verwendet da nur:

Framerate
Constant Framerate
Peak Framerate
AVG Bitrate
Constant Quality
Encoder Preset
Encoder Profil
Encoder Level

Und das war es schon. Bei Hybrid könnte man das ähnlich machen weil die "qsvenc Default-Settings" aller Optionen schon ordenlich gesetzt sind. Und die speziellen Settings/Optionen werden als Extra-Settings manuell direkt in die Kommandozeile eingetragen. Und wenn das ganze noch mit ins Profil abgespeichert werden kann, super ... was will man mehr. Du müßtest auch nicht die o.g. CPU-Varianten berücksichtigen, ebensowenig wenn sich bei qsvenc was ändert oder was hinzukommt. Mal abgesehen davon das "qsvencc --check-features" fehlerhaft ist.
Bei LAHRD werden mit etliche falsche Infos angezeigt.

Ich schick mal ein Stoßgebet zum Himmel das Du wenigestens darüber mal nachdenkst wink

Gruß ggrub

10

Re: QSVEnc + B-frame Pyramid

Wenn check-features fehlerhaft ist, muss man i.d.R. die Intel Treiber aktualisieren. smile

Man beachte "la-hrd 23". Wo kommt die 23 her ?

Da greift Hybrid anscheinend auf den falschen Index zu und nimmt die Werte für 'quality variable bitrate'.
-> gucke mal drauf.

und zwar das der User bei "Extra Options" eigene Settings einsetzen kann. Ich finde dieses Konzept einfach optimal.

werde mal über ein 'custom command line addition' nachdenken

11

Re: QSVEnc + B-frame Pyramid

Die Treiber sind aktuell.

werde mal über ein 'custom command line addition' nachdenken

https://www.cheesebuerger.de/images/more/bigs/a063.gif https://www.cheesebuerger.de/images/more/bigs/c011.gif

12

Re: QSVEnc + B-frame Pyramid

Hab Dir mal ne PM mit nem Link zu ner Testversion geschickt, welche den Index Bug fixen sollte und auch eine  'custom command line addition' hat.

Cu Selur