-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tune metric encode quality? #114
Comments
hey @mikk9 kind regards |
scenario-info game_streaming makes a big difference but it only works for CBR/VBR bitrate mode. Some settings can boost PSNR/SSIM. Also LA depth can be varied between 3-100. Without streaming scenario there is only on/off depth, it doesn't matter if it's set to 1 or 100. |
thanks a ton for that info, was looking hard to get any details so far |
Depth 3-29 works fundamentally different than 30-100. You can try for example dist 8 with depth 8 and dist 8 with depth 50. I would also suggest using --gop-len 250 with this. Depth 8 requires much more bitrate for the desired encoding bitrate. It usually boosts PSNR/SSIM and often also subjective quality. |
that explains a lot because all my use-cases and automated test are based on CQP and ICQ atm. I didn't have the time yet to finish the other encoding modes... will follow the next weeks - thank you a lot for your information! |
--scenario-info game_streaming works for AV1 and also h264 CBR/VBR. When I try HEVC I get this error Failed to get output frame info!: insufficient buffer at input/output |
@mikk9 |
Yes could be, it's a very new entry under the Experimental flag. |
TuneQuality enumerator should be included in API 2.9 and OneVPL v2023.2.0. |
QSVEnc 7.37 updates to oneVPL 2.9 and adds --tune option. Please note that the latest 4255 Win driver is still at API 2.8, so not actually tested yet. |
I hope the next driver is getting API 2.9 support. |
Windows beta 4311 doesn't have it? Linux should have it right now, but a lot of the other stuff not working there... |
4311 comes with API 2.08.....we need API 2.09. And even with API 2.09 there is no guarantee, we have to try it out. |
WHQL 4314 driver, Beta 4335 driver, unfortunately both still with API 2.8. |
ffmpeg qsv works fine with that driver version (decoder+encoder):
I guess @rigaya needs to rebuild the windows binaries / 7.36 is the last working version with the new driver qsvencc64 --check-impl
|
Yes indeed, I just tried FFmpeg and Handbrake and they work as usual. [21:41:17] CPU: 12th Gen Intel(R) Core(TM) i5-12500 |
QSVEnc 7.41 will fix encode failing with 4369. However, |
Thank you very much for that quick fix / new release - confirmed API 2.9 working now - looks like you are the 1st programmer who uses that API version so I guess the experimental features will work soon -when more people are using it- and intel gets more feedback from all users. btw. qsvencc ist faster than ever since the 7.39 changes - GPU usage in Task Manager is now a flat line at 100% per used core, no spikes anymore - great job with that multi threading fixes! |
@bavdevc Thank you for confirming QSVEnc 7.41 works file.
Nice to hear that! Adding multi threading was rather complex work, so I'm glad it works out fine. |
With the latest driver --la-depth no longer works as usual with AV1 and CBR/VBR. Now it requires --extbrc but unfortunately the metric scores are in most cases lower with extbrc+la-depth. There is a workaround: --scenario-info game_streaming with --la-depth 1 (1 or 2 is mandatory). This is the same: Old driver: --la-depth 1....100 ( 1 or 100 didn't make a difference) |
yeah @mikk9 - I also noticed some changes between Intel driver revisions lately, worse between windows<>linux on the same stack - Intel software is very volatile atm. btw. @rigaya is https://github.com/Intel-Media-SDK/MediaSDK/blob/master/tools/tracer/README.md still a thing after the switch from MediaSDK to onevpl? - or what tool would you recommend to trace some onevpl/ex-mediasdk API calls? |
Hi, i have tested with latest beta driver on Intel DG2 ARC A380 tune quality and get a error about enough buffer, tune quality on this driver are enabled Codec: H.265/HEVC FF MFXENCODE: Failed to get required buffer size for MFXENCODE: invalid video parameters. My encodings parameters: Regards |
Which driver version are you talking about, I tried version 4382, but TuneQuality doesn't work |
Is it still not supported from the driver? Feature check says it's supported for AV1 and I can see it in the encoding log but it does nothing. By the way they have changed MFX_ENCODE_TUNE_DEFAULT into MFX_ENCODE_TUNE_OFF in API 2.10, see here: https://intel.github.io/libvpl/latest/VPL_change_log.html#id1 It's listed under experimential, maybe it makes a difference? By default, experimental API is turned off in the header files. To enable it, need to define ONEVPL_EXPERIMENTAL macro during the application compilation stage. |
Intel recently added a tuning option into oneVPL for various video quality metrics. I think this could be interesting how this effects subjective quality and scores.
https://github.com/oneapi-src/oneVPL-intel-gpu/blob/1288f4f5407ce2757c604e406fd1d674b9df4fdf/api/vpl/mfxstructures.h#L4855
intel/vpl-gpu-rt@d74bfb5
The text was updated successfully, but these errors were encountered: