rigaya / QSVEnc

QSVによる高速エンコードの性能実験
http://rigaya34589.blog135.fc2.com/blog-category-10.html
Other
313 stars 28 forks source link

max_frame_size, tile_rows #148

Closed mikk9 closed 5 months ago

mikk9 commented 1 year ago

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 1 year ago

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

example

mikk9 commented 1 year ago

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 1 year ago

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

mikk9 commented 1 year ago

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 1 year ago

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

rigaya commented 1 year ago

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

Feierkuula commented 10 months ago

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?