Граф коммитов

19639 Коммитов

Автор SHA1 Сообщение Дата
James Zern af18794f26 simd_impl.h,SIMD_TUPLE: make name param type explicit
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
2017-02-02 06:35:48 +00:00
Steinar Midtskogen 82d580c6ec Add unit tests for v128 intrinsics
Change-Id: I20a6ad88a6465b06700b6d692569d7e69c43f489
2017-02-02 05:20:15 +00:00
Joe Young e7a9133c74 palette: fix bug in float_comparer()
This function is used by av1_remove_duplicates() to remove
duplicate palette colors.

Change-Id: Ia9943bffa2032bcae92f4a6da86477a8135613f2
2017-02-01 15:55:04 -08:00
Alex Converse e8b34bb1eb ans: Remove some dead code.
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
2017-02-01 23:24:02 +00:00
Debargha Mukherjee d978cd5e74 Misc global motion changes.
A few encoder global-motion estimation parameter changes.
lowres: -0.844% (up by 0.08%)

Change-Id: Ib080125803cf56a91ce7d482d6d1445160105010
2017-02-01 22:27:39 +00:00
Zoe Liu 70ae8f09f1 Add the new experiment tag 'tripred'
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
2017-02-01 21:05:25 +00:00
Tom Finegan 29ba6756ee Fix tests on macosx.
- Wrap functions hidden by CONFIG_MOTION_VAR properly in test code.
- Add some missing ampersands.

Change-Id: Ie7c4e1f14cbacec1c157c7ce110b01350b2ed78e
2017-02-01 20:57:36 +00:00
Urvang Joshi 5bb97ed064 ALT_INTRA experiment: Use single set of weights for SMOOTH_PRED
2nd set of weights can be derived from the 1st.

Insignificant change in BDRate.

Change-Id: I68d6fc256f532d52573583f121dd28fd8913ce3a
2017-02-01 20:47:36 +00:00
Sebastien Alaiwan d0e23b4061 Merge dct_const_round_shift functions.
Change-Id: I73e3eec0b8fd17c3f9b9f52afc9fac43f3043028
2017-02-01 16:35:09 +00:00
David Barker 3aec8d6cd5 Fix encode/decode mismatches for supertx + delta-q
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
2017-02-01 14:47:43 +00:00
Alex Converse 8aca36d36c ans: Remove some out of date ifdefs
Change-Id: Ibd4bbceca8218eb94ed0af3c980f8e829a1896de
2017-01-31 23:27:49 +00:00
Tom Finegan 1da2edcd96 Make update of cmake's flags in compiler checks optional.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76

Change-Id: Ia9b483f01cd940c16ba4ea1942b333131398cf37
2017-01-31 22:59:23 +00:00
Tom Finegan 69ae2621e1 Fix cmake build.
Change-Id: I8cbb4b9815845072acbe108bf55554beabed76ca
2017-01-31 22:55:10 +00:00
Urvang Joshi 451e0f22c0 Bugfix: Fix an assert being triggered because of palette.
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
2017-01-31 22:05:22 +00:00
Yue Chen 4415b6ccd9 Offset probabilities of compound types for cb4x4
BUG=aomedia:313

Change-Id: Ic1a9e20e5fd3f645d3be851d7be759cf4caf7c02
2017-01-31 22:02:16 +00:00
David Barker 426a997e63 Fix ext-inter + compound-segment + supertx
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
2017-01-31 12:59:50 -08:00
Urvang Joshi d803cb96d9 Fix segmentation fault when encoding all keyframes (kf-max-dist=0).
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
2017-01-31 18:39:55 +00:00
Sarah Parker c2d3871501 Make global_motion work with ext_inter
Change-Id: I2a490e144099d7692296992528192c1f11d2c06f
2017-01-31 17:59:51 +00:00
Thomas Davies c6733fb7f0 EC_MULTISYMBOL: Separate out tokenization loop.
This will make merging EOB_TOKEN easier.

Change-Id: I1789344e9c3bbb329c30287a00aeee3c8a9d60c4
2017-01-31 11:16:24 +00:00
Thomas Davies f63903219f EC_MULTISYMBOL: split off token packing.
This will make refactoring to support EOB_TOKEN easier.

Change-Id: I8c7e37d090fd142f6b95d997116b84e6e10f3db5
2017-01-31 11:16:04 +00:00
Thomas Davies 0583c9849f EC_MULTISYMBOL: reconfigure coefficient decoding loop.
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
2017-01-31 11:15:52 +00:00
Thomas Davies 0ccefe21af EC_MULTISYMBOL: merge ZERO_TOKEN into coding scheme.
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
2017-01-31 11:13:04 +00:00
Urvang Joshi 23a611173b Palette code: add comments and rename some variables.
- 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
2017-01-30 15:09:57 -08:00
Yue Chen d0d3bccf14 Fix conflicts between cb4x4 and warped_motion
Set mi_size properly in findSample()

Change-Id: I26bae25bf6300a107108dc5c2b7098e7d7dfa750
2017-01-30 22:04:02 +00:00
Jingning Han 1992af1b98 Make cb4x4 work with daala-ec
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
2017-01-30 19:39:11 +00:00
Urvang Joshi cdbe708581 Palette Optimization: O(1) context lookup.
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
2017-01-30 17:48:46 +00:00
Urvang Joshi 199a2f4052 Palette: Don't use top-right pixel for context of color indices.
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
2017-01-30 17:48:46 +00:00
Jean-Marc Valin 79c0f32c58 Remove DCT from od_compute_dist_8x8
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
2017-01-30 09:46:15 +00:00
Jingning Han 86e277911a Fix ext-partition/type in cb4x4 mode
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
2017-01-27 13:58:08 -08:00
Debargha Mukherjee 4bab6e4f58 Adjust WIENER_FILT_TAP2_MIDV value to fix convolve
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
2017-01-27 17:56:17 +00:00
Jonathan Matthews 6d69ba0c74 Bugfix: decode_palette_tokens inverting stride and width.
Introduced in I745ca032f313c5041aacc98c03ae4bfc33d840de.
Stride should be plane_block_width and width should be cols,
 sanity check: cols <= plane_block_width.

Change-Id: Ic5128e94a909e498010c92fef2013da8df6d6d85
2017-01-27 17:26:15 +00:00
Johann cda0b5e46c highbitdepth + loop restoration: fix build on x86 32 bit
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
2017-01-27 16:36:30 +00:00
Tom Finegan efd55bd970 cmake: Add some more utility functions.
For C/C++ preprocessor additions:
- add_c_preproc_definition
- add_cxx_preproc_definition
- add_preproc_definition

For required flags:
- require_c_flag(_/nomsvc)
- require_cxx_flag(_/nomsvc)
- require_flag(_/nomsvc)

Change-Id: If72a8901e39ddb95305415e33ec3368cdd28a754
2017-01-27 15:21:13 +00:00
Thomas Davies dbfc4f9cc0 TILE_GROUPS: code a single tile group more efficiently.
Change-Id: If6efdb754558e3f237aa2d56c0eae4590fb021a4
2017-01-27 15:18:06 +00:00
Debargha Mukherjee 1a0ae84dab Fix OneByOneVideoTest for loop-restoration
Fixes and turns on the test.

BUG=aomedia:312

Change-Id: I6c7d1970e743ec2b025a798070761d22624e796a
2017-01-27 06:06:04 +00:00
Steinar Midtskogen 04305c68a7 Add unit tests for v64 intrinsics
Enable by running: test_libaom --gtest_filter=*TestIntrinsics*

Change-Id: If2553025820db469a0ecfe3aac1aa984324b65d3
2017-01-27 05:58:04 +00:00
Alex Converse 822513c88c ans: Support a larger state range in reverse serialization
Change-Id: Ic3a6f9d16a16f347fb36b94e6dca70d9436b984e
2017-01-27 01:11:38 +00:00
Debargha Mukherjee 9868c7479a Fix crash with cb4x4 and warped-motion
BUG=aomedia:314

Change-Id: I66af7f69ca0b97b9d840918a6b9ec34708a7f4e5
2017-01-27 00:54:05 +00:00
hui su 83c2663677 Refactor rd_pick_intra_sbuv_mode()
Change-Id: Id86b48ad34059668beb9464200dd9e03fc1b8a48
2017-01-27 00:42:44 +00:00
Yaowu Xu 006ff4be43 Change to initialize correct thread_data
BUG=aomedia:307

Change-Id: Ia1d39916b3e856acd33f4e199321395455151fb6
2017-01-26 23:05:35 +00:00
Debargha Mukherjee ff59b6acb1 Fix mismtach with ref-mv and ext-partition-types
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
2017-01-26 20:48:18 +00:00
Alex Converse 086c9db8e0 Remove "Large" from most of AV1FrameSizeTests
The only test here that is truly Large is ValidSizes (now
LargeValidSizes)

Change-Id: If0893aad78a666f3db0581a79d6161cc8929a996
2017-01-26 18:50:04 +00:00
Urvang Joshi 56ba91bbe4 Palette: Don't store tokens for pixels outside image boundary.
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
2017-01-26 18:03:33 +00:00
ltrudeau e1c0929f51 Convert PVQ skip variable to enum
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
2017-01-26 17:36:04 +00:00
James Zern 25d9a14074 configure: only add -std=c99 for non-visual studio builds
we rely on the version of visual studio (2013+) to allow c99 in that
case.

BUG=aomedia:111

Change-Id: If0fb9ad81b42e93bfb8752071abd2370d43981bb
2017-01-26 05:26:36 +00:00
Alex Converse af0c102b63 ans: Add a final state serialization test
Make sure all legal final states can both be serialized an unserialized.

Change-Id: I74d96598a2b206fbc6c82a06649347afb5f9bbd8
2017-01-26 02:32:02 +00:00
Debargha Mukherjee 8b61321690 Fix mismatch w/ ext-inter/warped-motion/motion-var
Fixes a mismatch issue with ext-inter+motion-var+warped-motion
due to unset num_proj_ref values.

BUG=aomedia:311

Change-Id: I042551f6c53e8cc005f2133704a03b243c98c12a
2017-01-26 02:05:45 +00:00
James Zern 1c4a878f8b configure,cmake: remove -Wdeclaration-after-statement
this was superseded by the addition of -std=c99

BUG=aomedia:111

Change-Id: Ib89125b6f2e259b52ae35af26e882f9b02ef2c27
2017-01-25 16:02:46 -08:00
hui su 78c611ab7f Speed up palette keyframe encoding with model RD
On keyframe, 18% speedup, 0.02% compression loss.

Change-Id: I29085ec23dd145effbea58852a46cd7f4dea8a46
2017-01-25 23:47:03 +00:00
hui su 8f4cc0a351 Speed up filter-intra keyframe encoding with model RD
On keyframe, 22% speedup, 0.04% compression loss.

Change-Id: I70d387cc9de86c0c0c8b0037d35cff141409d59b
2017-01-25 23:38:57 +00:00