fixes an error under Xcode 8:
array initializer must be an initializer list or string literal
the type deduced from #name was e.g., char[11]
Change-Id: I6fcb29e3229db7650eee106ef6e3986515dc0a07
This was part of the old ans zero token handling. It has been replaced
by the new ec_multisymbol zero token handling.
Change-Id: I9c1fcb42ac0d214178cf4fbf8755ad68dcbbc11f
This experiment implements the idea of the uniform tri-prediction,
which adds a 3rd inter prediction on top of the existing compound
inter bi-prediction. The final predictor for an inter-coded block is
the average of the compound bi-predictor and the third predictor,
which is indentified by a third reference frame and a third motion
vector.
Change-Id: I7ca8435a441960e7d9702fa09614ed7ae9d0ab02
- Wrap functions hidden by CONFIG_MOTION_VAR properly in test code.
- Add some missing ampersands.
Change-Id: Ie7c4e1f14cbacec1c157c7ce110b01350b2ed78e
This fixes the following mismatch bugs:
* At the bitstream level, the decoder would not read the delta_qindex
information for supertx blocks, but the encoder always sent it,
leading to the encoder and decoder becoming misaligned.
The delta_qindex information is still required for supertx blocks,
so change the decoder to read it.
* In addition, the quantizer was not properly adjusted for supertx
blocks at the decoder. We copy the quantizer setup code from
non-supertx blocks.
Since this does not change the encoder, it should not have any
quality impact.
Change-Id: I9a0f79c3aa66f2a5a353821e2a6f3b526636e7b4
rd_pick_palette_intra_sby() was being passed a dummy 'best_mbmi' in
one case, and later that dummy value could be assigned to 'mbmi'
causing invalid values in 'mbmi'.
This bug was introduced by:
de0c70a2: Refactor rd_pick_intra_sby_mode()
See the referenced bug for a repro case.
BUG=aomedia:337
Change-Id: If6b0aa329f4e4902cd4de8a5e09bc5d9196492a1
Allow the above combination of experiments to work together
correctly, fixing an encode/decode mismatch bug when they
were all enabled.
This change causes build_masked_compound(_highbd) to only
ever be called if CONFIG_SUPERTX is off, so wrap these functions
in an '#if !CONFIG_SUPERTX' block.
BUG=aomedia:313
Change-Id: Ic3886bc69ba9624b8fcb0a4c2d71fc64d2c0f22c
The issue was that:
- We call av1_setup_pre_planes() when this is not an intra-only frame,
but,
- But, we do motion vector search for any frame other than first frame
Doing both of these only when this is not an intra-only frames makes
logical sense and fixes the crash too.
This also avoids doing motion search for intra-only frames in the first
pass.
Verified that there is no change in compression performance for video,
as well as when forcing all keyframes.
BUG=aomedia:133
Change-Id: I7b18c0568eaa29c6c97f31f226243e5a9dbaecf1
Preparation for merging EOB into multi-symbol encoding.
The more_data flag for the first position is moved
out of the loop, and for remaining positions is
moved in with the previous coefficient. This way it
can always be associated with the previous non-zero
coefficient.
Change-Id: Idfb38058f4c415127b4d9a9beeb8ea2d3a2ec1a2
Zero, one, and two or more coded as one symbol (head).
Remaining tokens coded as a tail symbol.
The pareto CDF distribution is adjusted to cover tokens from
two onwards.
Change-Id: I98b33fab6b9f52690f6ad618ac55e725a97be056
- Added comments for some tables and #defines for clarity.
- Renamed some variables to ensure we use "color_index" instead of
"color" for palette color index related variables.
Change-Id: Ica95a26e0f171a41a3259c8e6b3b891b8cd10151
This commit makes the daala-ec work in the cb4x4 mode. As compared
to --enable-experimental, --enable-experimental --enable-cb4x4
improves the coding performance by:
lowres 2.6%
midres 1.2%
Change-Id: Ifee6f011c80364492c4a547513d24eb2958b5a56
Now that we have small number of contexts (5), use hash multipliers
(instead of base 11), so that color context hash is within a small
range. This allows us to use a lookup table to get color context
instead of a for loop.
Output bitstreams are bit-exact, so no change in compression.
Change-Id: I8cd8c893048c2fc6b22ccbd56f652d11486e2ee9
This reduces the complexity in a number of ways:
- We need just 3 neighbors instead of 4.
- Possible contexts reduce from 16 to 5.
- On hardware side, getting the contexts for a whole block will be more
parallelizable.
At the same time, compression performance improves very slightly:
- Screen-content set (videos) (Google): BDRate improved by 0.32
- screenshots set (images) (AWCY): PSNR improved by 0.62:
https://arewecompressedyet.com/?job=palette_withTR2%402017-01-27T21%3A30%3A28.890Z&job=palette_noTR2%402017-01-27T21%3A41%3A34.312Z
Change-Id: Ie84ca32f05d55ad481a51c2d3abc579468597189
Cherry-pick Daala e248823a
Getting rid of the DCT in od_compute_dist_8x8()
Replacing the DCT and frequency weighting by a filter
Change-Id: Icc3a46e5dbb561e4e3b00fa6c2290d54299c05cb
This commit fixes the encoding/decoding mismatch issue when
ext-partition and ext-partition-type are both turned on in cb4x4
mode.
BUG=aomedia:336
Change-Id: I4d6ad5863c9d3bc8e3a41c259b8b39f130164790
Adjusts the value by 1 to make sure that the center tap
if the Wiener filter does not drop below 0.
BUG=aomedia:315
Change-Id: I41c3a2eb3f36dd49072a4873a995003d18f94ece
Introduced in I745ca032f313c5041aacc98c03ae4bfc33d840de.
Stride should be plane_block_width and width should be cols,
sanity check: cols <= plane_block_width.
Change-Id: Ic5128e94a909e498010c92fef2013da8df6d6d85
When the functions were added in
https://aomedia-review.googlesource.com/6545 they were not restricted to
x86_64 builds.
Fixes "undefined reference to
`aom_highbd_convolve8_add_src_sse2'" for --target=x86-linux-gcc
Also remove SSE2 specializations from
`aom_highbd_convolve8_add_src[_horiz/_vert]`, since those functions
don't actually have SSE2 versions (this was left in by accident
in the original patch).
Change-Id: I9f7d0c11b58b6f5a0e6a1fdaed0f92175bdeab34
Change the list of search offsets searched when ext-partition-types
is on for square block_sizes. This is because the VERTICAL_A and
HORIZONTAL_A partitions are incompatible with the default list.
BUG=AOMEDIA:141
Change-Id: I884c45c3d11039b7dcb72336a928362f926473ed
If part of a block falls outside right and/or bottom image boundary,
then only store tokens for the part of it within the boundary.
Also, consider only the part of the block within the boundary when
calculating the number of colors in the image, deciding the base
colors for palette, RD calculation etc.
The part of color map corresponding to pixels outside the image
boundary is padded with color indices copied from same row/column.
This behavior is similar to how pixels outside the boundary are padded.
For screen_content set, this is improves compression performance by
0.038 overall. One clip, in particular, has a significant gain of 0.8.
Change-Id: I745ca032f313c5041aacc98c03ae4bfc33d840de
Creates the PVQ_SKIP_TYPE enum to encapsulate the different types of
skipping that can be signaled by PVQ (i.e. skip: AC, DC or both).
There is no impact on the bitstream. However, the decoder will now emit
an internal error if the decoded skip flag is out of range. The
block_skip variable is also renamed to ac_dc_coded as it stores the same
information.
Change-Id: Ib2aadaf99dc1736ea392ae5ed8948c3cdc12da9b
Fixes a mismatch issue with ext-inter+motion-var+warped-motion
due to unset num_proj_ref values.
BUG=aomedia:311
Change-Id: I042551f6c53e8cc005f2133704a03b243c98c12a