This fixes the mis-aligned cdf model derived from tree based
model. It resolves the compression performance regression in
dual filter, intra mode, inter mode, and transform block type
coding, when ec-multisymbol is enabled by default.
With dual filter enabled, the performance regression was 3.6%
loss for lowres. This fix brings the performance gains back to 1%
gains.
Change-Id: I80f5485386045908c152c9c11eeacbc650f1e324
Add av1_set_txb_context to perform context setting.
This will make the code cleaner and facilitate
lv_map experiment implementation
Change-Id: Iea7e1e8ff6820e2c9cf72961adaa58346a7eca75
Currently, mbmi->ref_mv_idx can be set to a nonzero value
on the encoder side if mbmi->mode is one of NEARMV, NEWMV,
NEAR_NEARMV, or NEW_NEWMV. But it can only be nonzero on the
decoder side if the mode is NEARMV or NEWMV. Hence av1_nmv_ctx
has previously been disabled when ext-inter is enabled, to
prevent a mismatch due to this.
This patch changes the encoder behaviour to match the decoder
behaviour.
Change-Id: Icfe41fb72e76731ae373fe8c6065f5e003f6414f
Offset the transform block size with respect to TX_4X4 when
counting the cat6 extra bit size. This accounts for the potential
use of 2x2 transform block size in cb4x4.
BUG=aomedia:405
Change-Id: Ia15ac123e4f31dc66455c3aa6925ae5e754de493
Use a simpler warped motion estimation scheme that uses a 2d
least squares problem, where the underlying assumption
applied is that the motion vector computed at the center
of the current block using the warp model is exactly the same
as the motion vector transmitted for the block.
The main motivation is to reduce the complexity of the
estimation process.
Coding efficiency drop is about +0.25% on lowres:
-1.152% (from -1.396%).
Also, removes code for non-approximate division and bakes
approximate divison in.
Change-Id: Ie4ad8e32593b09f7e1920c70b0b92545236ddc54
all around usage of strtol/strtoul
ported from libvpx:
08b8b6bb8 examples: quiet -Wshorten-64-to-32 warnings
Change-Id: If907c89f107a068987aa71ddd93cee9a7389e4cd
Frankly I don't know what this was exactly doing in Daala
but it cannot be supported in AV1 because
state.sb_q_sacaling is not defined.
Change-Id: I75cb9080aa2a4af544b436b07ddcb9c27b3d25c4
Adds the superres scale numerator, width, and height to the AV1_COMMON
struct for later use in encoding and decoding. This value will also be
added to the uncompressed frame header.
A #define statement is also added to represent the denominator - 16.
Change-Id: I4acec39ef3c67fa9f7118dac28daec3a2d734ed5
This will allow us decode motion mode without knowing motion vectors
in the neighborhood.
Improves the performance by 0.3% (1.1->1.4)
Change-Id: Ie18ee2b02b1d2f89615bc8fa423beb1f9bd9a678
Delta quant doesn't make sense if the intent is to encode
the frame in lossless mode.
BUG=aomedia:393
Change-Id: Ic26e30267dd3a061d7ee5e980b6950366f06b32f
- Simplify arithmetic
- Combine branches
- When nesting branches do more predictable branches first
About 2.6% faster decodes at very high token rates.
Change-Id: I2802fd47a78c144e4d89c59288590fc4b095a504
We account for golden P frames and altref P frames using separate scales
unlike Theora which used the same scales as regular P-frames.
Change-Id: I87eca16de4fcd8fabe2a45fb9121c6e22ff70f61