tree e80b4aa6300ceb5b4040b7fe2b256cbe3c4b0700
parent 60ba714e351056384faa9e1db42ae86000f2a909
author Vignesh Venkatasubramanian <vigneshv@google.com> 1680894761 -0700
committer Vignesh Venkatasubramanian <vigneshvg@users.noreply.github.com> 1681146560 -0700

Use a single decoder instance for grid images

When decoding AVIF images with grid cells, use a single decoder
instance for all the cells instead of creating a decoder instance
for each cell. This is okay to do since each cell must be a key
frame. So they can be decoded with a single decoder instance. This
change also requires each decoded cell to be copied over to the
output image right away instead of being done in the end.

There are some edge cases where we will still need multiple
decoder instances:
 * For animated AVIF, we will need two instances (one for the
   color planes and one for the alpha plane since they are both
   encoded as separate video sequences).
 * For grid images with multiple layers. In this case, each grid
   will need its own decoder instance since there would be
   multiple layers in each grid.
 * For grid images where the operating point of all the grids are
   not the same. This is a bit of a peculiar edge case that is
   very unlikely to happen in practice. However, the spec does
   not disallow this as far as i can tell. So to be safe, we will
   use multiple decoder instances in this case as well.

This is better because of the following reasons:
 * Eliminates the cost of creating and shutting down several
   decoders (and threads when threading is enabled).
 * The underlying decoder is likely to re-use its internal frame
   buffer and not create a new one for each cell (unless the cell
   dimensions vary).

On android, with 2 threads on a set of 2x2 grid images the newer
implementation is about 5-10% faster when using dav1d and 25-30%
faster when using libgav1.

On android, for a 5x4 grid image [1], dav1d is about 30% faster
and libgav1 is about 40% faster. On desktop, both are about 10%
faster.

The performance improvement gets better as the number of cells
increase.

[1] https://github.com/AOMediaCodec/av1-avif/raw/master/testFiles/Microsoft/Summer_in_Tomsk_720p_5x4_grid.avif
