Segmment based lossless flag is used in select transform size, this
commit fixes a bug where wrong segment_id is used in such selection.
BUG=aomedia:350
Change-Id: Ibc981c779739849bac00447155180abbd319eb28
The macro used in assert is defined under CONFIG_VAR_TX. This fixes a
build issuse when --enable-var-tx and --enable-rd-debug are both on.
Change-Id: I497fe4a8b1fa6c7b05ac2b41c97522f7bdedc0ce
USE_TXTYPE_SEARCH_FOR_SUB8X8_IN_CB4X4 macro added to turn
tx_type search on/off for sub8x8 in cb4x4 mode.
The purpose is mainly to analyze the coding gains from cb4x4
but this later can be made into a speed feature as well.
Change-Id: Ic22026c373eebba87f324689ac5686a2844315b6
Integerizes computation of the least squares for warped motion.
The model is restricted to only Affine. Affine seems easiest
to compute and integerize since it can be split into two 3-dim
least squares problems, as opposed to rotation-zoom which needs
a 4-dim least-squares problem to be solved.
The current implementation requires only one division per block.
BDRATE impact is mminimal. The upgrade to the affine model improves
coding efficiency but integerization also degrades efficiency a
little. Overall there is a net gain of about -0.07% BDRATE on
the lowres set.
BDRATE lowres: -1.113% with ----enable-warped-motion vs. without
(up from -1.044%).
Change-Id: I6b9216ac0737d76f59054293eabee48e17739ec4
- Move source list vars.
- Split source list vars into common/decoder/encoder sources.
- Move target definitions into function.
- Split targets into common/decoder/encoder targets.
- Update CMakeLists.txt to include test.cmake and call
setup_aom_test_targets() at the appropriate time.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
Change-Id: Icd9ce67593c2de7ebd5c8ef921e31517b6d20945
It only handles the realloc constraint (preserving low elements) by
serendipity, and we don't actually rely on that behavior anyway.
Meanwhile the calls may do extra copying that gets immediately clobbered
by the callers.
Cherry-pick from libvpx:
3063c3760 Remove vpx_realloc()
Change-Id: I8dfa89e4a81084b084889c27bd272fdf85184e8d
Since we now require C99, this is undefined behavior.
Thanks to Luc Trudeau for the report and Alex Converse for the
suggestion on how to make the macro safe for all integer sizes.
Change-Id: I99a1342dfedb3e17a6869269be317c2ed26bfe9b
This commit enables the motion vector referencing system to use
the motion information of blocks to the bottom and right of the
collocated block. This improves the compression performance by
0.3% for lowres, midres, and hdres sets.
Change-Id: I03b3fb21f3a8698880ca9ceb945fa3e32531acdb
to get_binary_prob(). the only other caller mode_mv_merge_probs() does
its own test on 0.
cherry-picked from libvpx:
93c823e24 vpx_dsp/get_prob: relocate den == 0 test
Change-Id: Ie0604ad405a97ed754e4b88c6d580eb4894ea0f6
+ inline the function directly as there was only one consumer
(get_prob())
this is an attempt to reduce the amount of branches to workaround an amd
bug. this change is mildly faster or neutral across x86-64, arm.
http://support.amd.com/TechDocs/44739_12h_Rev_Gd.pdf
665 Integer Divide Instruction May Cause Unpredictable Behavior
cherry-picked from libvpx:
7481edb33 vpx_dsp/get_prob: make clip_prob branchless
Change-Id: I433059c61ce43ec5058cc16ca590d186bfa8aab5
Don't smash the value when assigning in CMakeLists.txt in
case the list needs an update from elsewhere in the build.
Change-Id: Icf1720f6bb4508e6a557c16dc229170f82d740b9
Merges two consecutive loops that iterated over TX_SIZES. There's no
impact to the bitstream. The 4 used as the termination threshold in the
second loop is equivalent to TX_SIZES.
Change-Id: Ic891d209b28f20907d53bcdd58139fe39c37b0fa
Not clearing the FP state was causing acos to return NaN on OSX / LLVM.
This was not causing problems Linux or AWCY.
Change-Id: I278d02839e4de858b5f55cfb380fa3968937995e
When creating the CDF head, do not use 8-bit probabilities
to make the CDF tables, but load them directly.
CDF tail values are created from the ONE_TOKEN relative
probability as before.
No change to BDR.
Change-Id: I7386b8952f6f69cc9b77aa1b2bee71cf8e3cc9ff
* code the palette color index using 45 wavefront
* interleave the coeff and palette color index in
transform block level
* the above change does not change code efficiency
Details:
The 45 wavefront scan allows to compute the ctx of
the diagonal samples' indices at the same time.
Interleaving palette indices and palette residual
on a transform block basis means that the entropy
decoding and further processing of the palette
residual is not delayed by the entropy decoding
of all the color indices of the palette encoded
block.
Change-Id: Ie9f576002a9a68394b99c23b01e9730df06df070
This allows compiling a codec using the same operating path (the generic
"high-bitdepth" one), regardless of the profile of the input bitstream.
For now, keep the 16-bit (generic) pixel operating path disabled by default.
Change-Id: Idd31a842b801a82c4918b1cfa7cc0bff5b11d060
daala_ec now works without ec multisymbol, ec_multisymbol was accepted
at the face to face meeting. Enable ec_multisymbol on its own and not as
a carryover with daala_ec.
Change-Id: I2f9d2523decd0641be6bc476c78cfd60f2e83a02
This will make it easier to add native CDFs for all the
dependent experiments without excessive macros.
Change-Id: Iee4710f0fe1c1b4300f686cdf2c5b879a36de987
Adds the static inline function get_plane_type to convert a plane number
to the corresponding PLANE_TYPE.
There's no change to the bitstream, it only encapsulates the logic to
get the PLANE_TYPE.
Change-Id: I1199db3a32c89437d9c029ab5b2b2e62582a13a2
This CL allow us to change filter coefficients easily for SIMD
implementation of high bitdepth convolution functions
Change-Id: I454a5c76d3ba9e4454118c6a9d87737b3aa24898
Support the use of 2x2 prediction and transform block size for
chroma components. This experiment builds on top of cb4x4. It
brings back the loss in performance gains due to 4x4 chroma
component constrain. The coding gains for lowres are up from 1.5%
to 2.5%.
Change-Id: I8e461e230c2d920f6df1af9d935ebe9dfa3820d9