Opened 6 days ago

Closed 4 days 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 Changed 6 days ago by heleppkes

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

comment:2 Changed 6 days ago by Ewout

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 Changed 5 days ago by jamrial

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 Changed 5 days ago by cehoyos

  • Component changed from undetermined to avcodec
  • Priority changed from normal to wish
  • Type changed from defect to enhancement
  • Version changed from unspecified to git-master

comment:5 Changed 5 days ago by Ewout

  • Component changed from avcodec to undetermined
  • Priority changed from wish to normal
  • Type changed from enhancement to defect
  • Version changed from git-master to unspecified

I agree that encoding with tiles is still preferred for decoding performance (data). 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.

Last edited 5 days ago by Ewout (previous) (diff)

comment:6 Changed 5 days ago by cehoyos

  • Component changed from undetermined to avcodec
  • Priority changed from normal to wish
  • Type changed from defect to enhancement
  • Version changed from unspecified to git-master

comment:7 Changed 4 days ago by jamrial

  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.