Opened 6 years ago

Closed 6 years ago

#7598 closed enhancement (fixed)

Add row-mt option to libaom-av1

Reported by: Ewout Owned by:
Priority: wish Component: avcodec
Version: git-master Keywords: libaom
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Like libvpx libaom can use the row-mt option to allow row based multi-threading within tiles. FFmpeg has the row-mt option integrated with libvpx, it would be great if it could also be added to libaom-av1.

Change History (7)

comment:1 by Hendrik, 6 years ago

row-mt is enabled by default in libaom. An option should not be needed.

comment:2 by Ewout, 6 years ago

In the latest build of aomenc 1.0.0-1009-g2d7eb8bce it's not enabled by default:
--row-mt=<arg> Enable row based multi-threading (0: off (default), 1: on)

Also, when running ffmpeg (20181205-2c64a6b) CPU usage never spikes above 35%, averaging around 27% on a quad-core machine.

comment:3 by James, 6 years ago

You should use either the -tiles or -tile-columns and -tile-rows options to encode a file with more than one tile if you want any multi threading from libaom, in any case.

comment:4 by Carl Eugen Hoyos, 6 years ago

Component: undeterminedavcodec
Priority: normalwish
Type: defectenhancement
Version: unspecifiedgit-master

comment:5 by Ewout, 6 years ago

Component: avcodecundetermined
Priority: wishnormal
Type: enhancementdefect
Version: git-masterunspecified

I agree that encoding with tiles is still preferred for decoding performance ([data https://docs.google.com/spreadsheets/d/1AO3lDZnpC8pNJffOknY1rIxXwLog_ISwHhO_sv3Xlhg/edit#gid=1957344704]). But with -tile-columns 1 the CPU spiked at 32% usage, while with -tile-columns 2 and -tiles 2x2 the max CPU usage was 53%. More than 4 tiles is not necessary to reach great decode performance, so row-mt could still provide a big speedup in encoding performance.

Edit: Excuse me, didn't mean to revert the properties of the ticket.

Version 2, edited 6 years ago by Ewout (previous) (next) (diff)

comment:6 by Carl Eugen Hoyos, 6 years ago

Component: undeterminedavcodec
Priority: normalwish
Type: defectenhancement
Version: unspecifiedgit-master

comment:7 by James, 6 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.