We have renamed following Macros to avoid name confusion:
REFS_PER_FRAME --> INTER_REFS_PER_FRAME
(= ALTREF_FRAME - LAST_FRAME + 1)
MAX_REF_FRAMES --> TOTAL_REFS_PER_FRAME
(= ALTREF_FRAME - INTRA_FRAME + 1)
INTER_REFS_PER_FRAME specifies the maximum number of reference frames
that each Inter frame may use.
TOTAL_REFS_PER_FRAME is equal to INTER_REFS_PER_FRAME + 1, which
counts the INTRA_FRAME.
Further, at the encoder side, since REF_FRAMES specifies the maximum
number of the reference frames that the encoder may store, REF_FRAMES
is usually larger than INTER_REFS_PER_FRAME. For example, in the
ext-refs experiment, REF_FRAMES == 8, which allows the encoder to
store maximum 8 reference frames in the buffer, but
INTER_REFS_PER_FRAME equals to 6, which allows each Inter frame may
use up to 6 frames out of the 8 buffered frames as its references.
Hence, in order to explore the possibility to store more reference
frames in future patches, we modified a couple of array sizes to
accomodate the case that the number of buffered reference frames is
not always equal to the number of the references that are being used
by each Inter frame.
Change-Id: I19e42ef608946cc76ebfd3e965a05f4b9b93a0b3
(1) Apply ALLOW_FILTER_INTRA_MODES flag to the correct place, otherwise
there are bitstream mismatchs when it is 0.
(2) Rename pick_ext_intra_iframe() to pick_ext_intra_interframe().
Change-Id: Ic88c930de1d3f819750f0892df52bde55ae32a91
Manually cherry-picked the following changes:
8c8d16de vp9 -> vpx in names
75b57d39 VP9_ -> VPX_ in function names
761a7088 VP9_INTERP_EXTEND -> VPX_INTERP_EXTEND
4273a52c VP9->VPX in border pixel macros
03568c31 VP9_FRAME_MARKER -> VPX_FRAME_MARKER
2334f51d VP9->VPX in fdct function names
Change-Id: Icc18dbf4b416dd0fa21033b3e19ab8a47c893508
Added a new expt rect-tx to be used in conjunction with ext-tx.
[rect-tx is a temporary config flag and will eventually be
merged into ext-tx once it works correctly with all other
experiments].
Added 4x8 and 8x4 tranforms for use initially with rectangular
sub8x8 y blocks as part of this experiment.
There is about a -0.2% BDRATE improvement on lowres, others pending.
When var-tx is on rectangular transforms are currently not used.
That will be enabled in a subsequent patch.
Change-Id: Iaf3f88ede2740ffe6a0ffb1ef5fc01a16cd0283a
Keep track of the best and second best full pixel motion vector
candidates, and do subpel search around both of them.
Compression improvement:
lowres 0.22% midres 0.23% hdres 0.18%
No noticeable encoding speed changes observed on lowres test clips.
Change-Id: I5f4df2a03d1db061cfdfdba6138b27e9ea91f089
Originally the uniform quantization function was not being
replaced with the new_quant version in rdopt when new_quant
is turned on. This fixes the bug.
Change-Id: I593793bb909e1e1a6f89544eeca6783fe0576f25
1. Add "best_mv" in MACROBLOCK to store the best motion vector
during motion search, so that we don't need to pass its pointer
to various motion search functions.
2. Declare some functions as static when possible.
3. Fix some indents.
Change-Id: I0778146c0866cbc55e245988c59222577ea8260e
Use vpx_blend_a64_hmask and vpx_blend_a64_vmask to speed up
computing the obmc predictor. Clean up calc_target_weighted_pred.
Encoder speedup: 1.3%
Decoder speedup: 6.5%
Change-Id: I0c774fe53d22399e92a10d1daf3af0010d88d2c5
The combination of the two experiments improves the compression
performance gains:
lowres 2.5%
midres 2.1%
Change-Id: Id26c0a9474ce08893aa1d946365c7ff850fab57a
When the prediction residuals are all zero, reset the coeff rate
cost and the distortion value to be zero. This change doesn't affect
lowres set significantly, but improves several clips in the midres
set, like sintel_480p and mobisode2_480p, by a few percents. The
average performance for midres set is improved by 0.2%.
Change-Id: Idd5ebf2652e556a1b1c569fe3c48dacef3f11c32
- Use int32_t instead of int in vpx_obmc{variance,sad} functions
- Remove weigthed_src and obmc mask strides and assume contiguous
buffers. These inputs can always be packed as contiguous arrays.
Change-Id: I74c09b3fb3337f13d39e13a9cb61e140536f345d
Reject ext-inter compound modes before doing full rate distortion
evaluation, if the corresponding single reference modes had a lower
modelled RD.
ext-inter speedup up to TBD.
Coding performance: TBD
Change-Id: I358bfb879c5ebe5e7afbf6f540cc784f8de14857
This offset value related to the bit depth has been taken care of
inside the function vp10_highbd_block_error.
Change-Id: I58dd8a53380ba4529d59837e56a951bc81a2962e
Commit 0d6980d7a1caa592058f8d5d618b012c160772f7 removed some use
of the skip_txfm optimization, and the rest are not productive.
The current use of this optimization is only used with --good
and --cpu-used >= 3, however the overhead of this is higher than the
speedup it yields.
Removing this, and subsequently simplifying model_rd_for_sb yields
a net encoder speedup:
--cpu-used=0 ~1.5% faster
--cpu-used=3 ~2.0% faster
The code simplification is also significant.
Change-Id: I1dd668c32de15a2e912c59c42379d0f9e1032ff8
Add the ability to pick between 3 quantization profiles.
The profile is chosen based on the entropy context at the
block level.
Change-Id: Iaea0485798441b7d635962c2563f3a477f582dac
This commit refactors the transform and quantization process for
sub8x8 blocks and unifies the related functions.
Change-Id: I005f61f3eb49eec44f947b906c4e308cab9935a2
Replace the expanded zero-bin quantizer with uniform quantizer in
the recursive transform block partitioning scheme. This improves
the compression performance by 0.4% for lowres.
Change-Id: I1c32ce9ebba0f0760e36a2c5bd20f2f5887ea5b4
This reinstates commit efda2831e5f758b4f350679b5c55c0b9282449b0
without the tests and with fixes for 32 bit x86 builds.
Change-Id: I34be4fe1e8a67686d26ba256fd7efe0eb6a569e8
The tile boundaries should now be respected even between tile rows.
regardless of whether ext-tile is used or not.
Change-Id: I5a39fd274451114a4264215f97f12be2c908016d