This prepares for the integration of rectangular transform size
into recursive transform block partition.
Change-Id: I164eb43d10afa9bb2f4722de7a48faa770ba4ced
Use table to replace the arithmetic computation for mapping between
transform block and pixel number. Support automatic scale of block
size and transform block size.
Change-Id: I84766850172265d4295f418383dbc5e6e5838ec8
This change is similar to the one done for choose_tx_size_from_rd in
daf841b4a1
It gives a 4% speed-up on bus_cif.y4m with the following settings:
--cpu-used=4 -p 1 --end-usage=q --cq-level=40 --tile-columns=0 --tile-rows=0
Change-Id: Ic54fe4a066a2c0b5f6349d80cd13de8bb8ddcabc
Ran some manual sanity checks:
- Verified that the automatically generated encodings match the
hand-written encodings before the patch.
- Verified that the encoded bitstream before/after this patch is
identical.
Change-Id: I2153c57e463cff09c1d03d619b432fb1015199c3
For a 16x16 pixel block, one needs to allocate 16x16 coefficient
tokens, plus up to 16 eob tokens, per plane. This commit increases
the token allocation size to cover the case where all the transform
blocks are of size 4x4 in format 444.
Change-Id: I5755e6a53771053d51163d01ec1d62e670c5009e
Given the largest transform size is 32x32, this commmit changes size
estiiation based on the size rounding up to 32 multiples to avoid
insufficient buffer allocations.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=36
Change-Id: I6eab09dc6acdc0f5a6bcadb918d62c4852aae21f
This commit increases the minimum size for allocated buffer for
compressed data. The old size underestimated the size needed for
small images with width or height less than 64 pixels.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=31
Change-Id: Ia12507edc2be1e737ec49c32f64fd2ebf1eab41f
Previously, we assumed that av1_init_plane_quantizers is always called with
segment_id == xd->mi[0]->mbmi.segment_id (and use the latter to derive the value
of 'qindex' to use in the quantizer). But this is no longer true when supertx
is enabled. This patch instead remembers the value of 'qindex' derived from
the latest call to av1_init_plane_quantizers and uses that directly.
Change-Id: Ifa1c5bf74cad29942ff79b88ca92c231bc07f336
This commit resets the transform size to be the maximum possible
value. It avoids out-of-boundary writing when the ActiveMap is
turned on.
Change-Id: I8302dd9a5c9fffaea3edf9ad33f72aa111999737
This avoids an encoding segmentation fault in speed 5, due to the
use of uninitialized dummy inter prediction filter buffer in the
dynamic motion vector referencing scheme.
Change-Id: Icd888d46623e8abf34267838135eed8656d552e4
The difference between src and dst will be signed, the error will be
unsigned. The change quiets -fsanitize=integer:
unsigned integer overflow: 4294967295 * 4294967295
Change-Id: I131cefcc9583ee8a5b98eb5182fd30e9c7237ea0
It seems that when bit accounting was introduced in
https://chromium-review.googlesource.com/#/c/400658/
there was one place which was accidentally skipped, leading to build failures
with --enable-dering. This patch adds the missing information.
Change-Id: I59e1bd6f7e1d4fa58506ee7af307b845c78a7cbe