rigaya/QSVEnc

max_frame_size, tile_rows

mikk9 opened this issue · 7 comments

mikk9 commented

I tried out ffmpeg the last few days and found two useful settings for AV1 encoding on Arc, it's tile_rows and max_frame_size. Possibly also tile_cols in some cases.

I tried one video and found these two settings are good (CBR 6000):

-max_frame_size: 50000
-tile_rows 2

PSNR, SSIM, VMAF scores are better with these. Maybe it's something for QSVEnc as well.

mikk9 commented

+0.4 VMAF and +0.0034 SSIM improvement with these two settings for this video.

example

mikk9 commented

Another example. In this tile_cols 2 also improves. I can go higher with the bitrate.

example2

Default tiles are 1: https://spec.oneapi.io/onevpl/latest/API_ref/VPL_structs_encode.html#mfxextav1tileparam

I tried 3 and higher but then the quality goes down. 2 is the best.

rigaya commented

QSVEnc 7.45 adds --tile-row, --tile-col and --max-framesize.

mikk9 commented

Thanks that was fast. It appears that max-framesize isn't working, no matter what size I try it makes no difference. Tile is working.

mikk9 commented

I believe --max-framesize requires VBR, it makes a difference there. ffmpeg uses VBR on default.

rigaya commented

QSVEnc has --cqp default, so you need to explicitly specify --vbr along with --max-framesize.

the --tile-col and --tile-row seem not working with the Intel Arc, as it is reset by driver to 0, when i specify more than 0, but with ffmpeg it works with ICQ encoding mode together. Is there an workaround?