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

21043 Коммитов

Автор SHA1 Сообщение Дата
Debargha Mukherjee 749f5cd51d Add refinement search for sgrproj filter
Change-Id: I8deea1d2a76ce8c36085d19362ac2508fd3c438f
2017-06-01 16:55:41 +00:00
Yue Chen f03907a294 Make ext_inter/wedge/compound_segment/interintra on by default
(1) Make unit tests for masked sad/variance encoder-only
(2) Fix compile error with intrabc
(3) Fix warnings reported by static analysis

Change-Id: I0cd2176fcda0b81e1fc30283767678376ced4c42
2017-06-01 15:59:16 +00:00
David Barker 17c37cebf0 Fix integer overflow in warp filter
Patch https://aomedia-review.googlesource.com/c/12602/ made the
variable 'sum' in the warp filter unsigned, to indicate that its
value should always be >= 0. But 'sum' is used to accumulate
signed values, and it is expected that some of those values
will be negative.

The issue is that, when running 'x += y', if x is a uint32_t
and y is an int (and is 32 bits), the C standard says to
convert y to a uint32_t before doing the addition. This causes
overflow, and so undefined behaviour, if y < 0.

This is fixed by making 'sum' signed, and by explicitly bounds
checking against zero at the end of the filter.

BUG=aomedia:572

Change-Id: I1d484b5f5698db0ec9761807610b3b2b35647983
2017-06-01 13:00:30 +01:00
Urvang Joshi affbe5e171 get_min_tx_size: assert() doesn't need an 'if'.
Change-Id: Id2be191fb48ed8d65b452499e1a1a1f470359321
2017-06-01 02:32:57 +00:00
Jingning Han 331662e954 Rework txfm_above and txfm_left context offset
Make the txfm_above and txfm_left be processed in the unit of
miniumum transform block size. Scale the transform block step
size with respect to the mode_info step size.

Change-Id: Iee4421e005db742cd4ff7899215560063e5f68e5
2017-05-31 22:30:04 +00:00
Jingning Han 70bd76e153 Preset min_tx_size in the encoder
Change-Id: I56c790821c1035e06d53392fbfee4fb4b7ed8b4d
2017-05-31 22:27:17 +00:00
Alex Converse 6e28006f75 Fix XCode clang build.
BUG=aomedia:571

Change-Id: I9779e341def6329a1d30a59d030b4b72819bf592
2017-05-31 18:34:08 +00:00
Jingning Han b6200c9bfc Fix filter intra backward prob update
Resolve the enc/dec mismatch issue when filter intra is turned on,
in addition to chroma-sub8x8, ext-tx, and ext-inter experiments.

BUG=aomedia:570

Change-Id: Idf0875763ce24bd8d4022f7338fc86debf4dfd0c
2017-05-31 09:55:36 -07:00
Alex Converse a127a7927c Remove more unused motion vector cost arrays
Change-Id: I68f8cc50d81a0cac116c6f342202b85ad2e6e3b2
2017-05-30 17:20:31 -07:00
Alex Converse d85d94da06 Remove unused sadcost redirection pointers
Change-Id: Ib94d57b24d3276dd74abe151f740258d78ff430b
2017-05-31 00:08:07 +00:00
David Barker 723923ca57 Fix ASan bug in masked variance unit test
The masked variance functions can read slightly off the
(nominal) end of their input array. This is not a problem,
since the extra data is never used, and when the functions
are used in the encoder proper, they will just read data
from the frame border.

However, the arrays in the test case had not been properly
padded, causing ASan to complain about reading off the end
of an array.

Also remove an accidental comment in the code.

BUG=aomedia:569

Change-Id: Icb5cf4d39ee50fc6e1b807f483940d7a7b12ce63
2017-05-30 22:31:21 +00:00
David Barker facac4f5f0 Tidy up warp filter
* Simplify the C version of the warp filter to make the intent
  of the code clearer
* Replace saturate_uint() in the C warp filter with an assertion
  that the intermediate values are in-range. This is because they
  should (provably) *never* go out-of-range.
* Add a comment describing the intended hardware architecture
* Miscellaneous comment updates

Change-Id: I798736f923ece599f22d573d31c5dfccd18b2d0e
2017-05-30 21:37:40 +00:00
Thomas Daede 8ea3319ee7 Remove VAR_BASED_PARTITION.
BUG=aomedia:526

Change-Id: I5d9b86a36f412ded2d6f20e198d2f4de4f97aaeb
2017-05-30 17:54:55 +00:00
Yi Luo ef39c843a4 Add a unit test for AV1 quantizer optimization
BUG=aomedia:542

Change-Id: Ifceffa29d87d12c37ae1563350101415631eaa00
2017-05-30 09:57:52 -07:00
Tom Finegan befa87c690 Remove doxygen XML configuration.
Parts of it are causing doxygen to emit warnings, and
AOM's doxygen configuration doesn't produce XML output.

Change-Id: I34271721b64f369dfc51b9be3f508db2bfcb5633
2017-05-30 07:36:16 -07:00
Arild Fuldseth (arilfuld) bf3813a166 Enable one_sided_compound by default
Change-Id: I7bceace31c118993228168ec04f12319a9011f6b
2017-05-30 10:40:04 +00:00
Arild Fuldseth (arilfuld) f3b5e7f49a Use 7-bit smooth and regular filters with DUAL_FILTER
Change-Id: If8f8e1a0032e914beb3ec3bcde221fe4a5605139
2017-05-30 10:41:34 +02:00
Arild Fuldseth (arilfuld) 78bfc2851e Rename LOWDELAY_COMPOUND to ONE_SIDED_COMPOUND
Change-Id: I05b2c8c116b5e3287be2703e840a28f6dda9c42a
2017-05-29 09:31:10 +00:00
Debargha Mukherjee a77ec1c922 Change warp filter to use one less precision bit
Change-Id: Idc7bb686f5751b0457c9f21daac0fa6f4865fd22
2017-05-29 07:09:48 +00:00
Jingning Han 8feaaac8fd Initialize both luma and chroma planes in palette encoding
This avoids the use of uninitialized value in palette encoding.

BUG=aomedia:568

Change-Id: I1000b28d9acf25a70ef641d4494f0b116a4ca071
2017-05-28 19:17:14 -07:00
Yushin Cho 7300db5fcb Fix pvq to use OD_ICDF when directly accessing skip_cdf
Change-Id: Iac66b12dc6b1e6c3bc3c3ae54af45a97c81e34de
2017-05-28 20:03:56 +00:00
Jingning Han 0481e8b6e0 Fix an enc/dec mismatch issue in tokenization
Resolve an enc/dec mismatch issue in new-tokenset and var-tx.

BUG=aomedia:567

Change-Id: I9bd8ec4c7716bca3a5e551b6e9838fc8ef37f198
2017-05-28 19:54:08 +00:00
Yushin Cho e6c1f6be89 Disable unsupported experiments if pvq is enabled
Change-Id: I013c15acdfb968702360bd7deb231900f7880f49
2017-05-28 19:25:41 +00:00
Debargha Mukherjee 4374e431c1 Fix assert failure due to inconsistent comp tools
Fixes AV1/AltRefForcedKeyTestLarge.Frame1IsKey test.

Change-Id: I457b5c1dacb9fd2294c650d11821d6a1930d04dc
2017-05-27 15:03:18 -07:00
Debargha Mukherjee 11cf46f4af High precision Wiener filter rework
Implements the high precision Wiener filter with an offset
to reduce the error due to saturation without increasing
the number of bits needed for intermediate precision.

Also turns the high precision filter on.

Change-Id: I34037a5746a6a89c5fce67753c1b027749085edf
2017-05-27 01:20:14 +00:00
Jingning Han 62946d17f0 Fix enc/dec mismatch in filter-intra and chroma-sub8x8
BUG=aomedia:561

Change-Id: I6dc0fd97f29bfa0302abb6e90802674c1aa65674
2017-05-26 19:11:42 +00:00
Jingning Han 2d4fafac18 Cover intra tx size count in rect-tx
Account for intra tx size case when coding block is in skip mode.

Change-Id: I030bc05d890c4a7c8d4628a7f9bdebaba6083a03
2017-05-26 19:11:36 +00:00
David Barker 0aa39ff054 ext-inter: Vectorize new masked SAD/SSE functions
We would expect that these new functions would be slower than
the old masked SAD/SSE functions, as they do additional work
(blending two inputs and comparing to a third, rather than
just comparing two inputs).

This is true for the SAD functions, which are about 50% slower
(depending on block size and bit depth). However, the sub-pixel
SSE functions are comparable to the old speed for the accelerated
special cases (xoffset or yoffset = 0 or 4), and are
between 40-90% faster for the generic case.

Change-Id: I1a296ed8fc9e3edc313a6add516ff76b17cd3e9f
2017-05-26 18:50:20 +00:00
Sarah Parker b9f68d278a Remove references to deleted ext-inter modes
This allows the av1 analyzer to work for ext-inter experiments

Change-Id: I9f86740f051f7db632a8f7dbe63be66ce89ff3a8
2017-05-26 17:42:16 +00:00
Yue Chen 5e606544b1 ext_inter: remove unnecessary rate parameters
Only use compmode_interinter_cost and compmode_interintra_cost in
handle_inter_mode() since outside the function they can be reflected
by the total rate.
Plus adding config flags to separate wedge/compound_segment from
ext_inter

Change-Id: I56b402aab3cf2337bae8d7e682f93cd8557f69a4
2017-05-26 17:26:58 +00:00
Yi Luo c621023e33 Improve the quantization table interface
- Add av1_build_quantize() function so that quantization
  related unit test would be able to access quant/dequant
  table without starting an encoder instance and directly
  accessing cpi.

Change-Id: I8ba429e5deb7a4e7f967996aaec1d20bff0feb3c
2017-05-26 16:02:47 +00:00
Jingning Han 923377b8d4 Initialize min_tx_size in var-tx
Avoid the risk of use uninitialized value when TX_2X2 is moved
behind chroma-2x2 flag.

Change-Id: Ibb3e3700ab82d7f98ebe58fae70afbf64f5773c7
2017-05-26 15:10:35 +00:00
Debargha Mukherjee 17f041a780 Clean-up unused 3rd order least squares
Change-Id: Ia18f9f7034dafb9ac0108143d4f65f3f6b1a77d5
2017-05-26 06:25:11 +00:00
Fergus Simpson 056732f67f resize-refactor: Check pixel dim instead of mb dim
Changes av1_scale_if_required to check if a resize is needed using the
width and height from cm directly rather than cm's mi_cols and mi_rows
times MI_SIZE.

This is simpler, and won't have issues with sizes that aren't divisible
by MI_SIZE.

Change-Id: Icbf34252a62436bb9bb0f83fa5fd688f7c5ae256
2017-05-26 01:39:32 +00:00
Fergus Simpson 8c70d9170a resize: Clear above context to aligned width
This fixes an issue with context clearing introduced by commit
5e81643d31.

In av1_zero_above_context width_y went from being assigned "2 *
aligned_width" to "width << 1". All this patch does is replace width
with the aligned_width.

This resolves an issue with random resizing being broken on the master
branch.

Change-Id: Ib60bf81e6091802053a5a26057c626d4efe6497c
2017-05-26 01:39:32 +00:00
Cheng Chen 60f59618ab Function parameter type correction
Make function parameter and pass in value the same type.

Change-Id: Ie2172b99b4cda81ac1d51f7ef1018bb9d4f55016
2017-05-26 01:28:04 +00:00
Jingning Han e289ac8bb9 Fix seg fault in YUV440 format
Resolve the segmentation fault issue in YUV440 due to uneven
chroma block size scaling.

BUG=aomedia:563

Change-Id: Ib607fb663fe2d9f2da6eef5bd22b07da8569fdd1
2017-05-25 22:21:23 +00:00
Debargha Mukherjee 9e2c7a653d Frame level flags to ctrl ext-inter compound modes
Change-Id: I904283119d8f2c1099e6ec2953ea1c10c5e3b280
2017-05-25 21:59:37 +00:00
Jingning Han 1341cbac85 Fix an enc/dec mismatch issue in rect-tx
This commit resolves a rare enc/dec mismatch issue due to the
intracacy of using rectangular transform block size for intra
coded blocks.

BUG=aomedia:562

Change-Id: I10c52339a995a89bafa3a3330469ee3f2b784768
2017-05-25 21:49:34 +00:00
Yi Luo bf8af7e624 Add HBD build to av1_quantize_fp_sse2
- This change turns on low bit depth data path for
  this function under default HBD build.
- Encoder user level encoding time reduces ~12%
  on i7-6700.

Change-Id: I7ce21e8db1a379f972e51c3b4ab305ca10e41efb
2017-05-25 19:46:39 +00:00
Luc Trudeau 8d486ae1d0 Simplify Frame Context for cfl_read_intra
Change-Id: I9e0967662f2ed855813b968d5afd09f6d9fc1b62
2017-05-25 19:34:15 +00:00
Nathan E. Egge a1f80e317f Pass FRAME_CONTEXT when reading intra modes.
Modify the function signatures of read_intra_mode_y() and
 read_intra_mode_uv() to take a FRAME_CONTEXT instead of an AV1_COMMON
 which pushes the CONFIG_EC_ADAPT ifdef into the calling function.

Change-Id: I89029273bcbdd200a5b928ad91ba9a6a22cf0a62
2017-05-25 18:31:31 +00:00
Nathan E. Egge 476c63c1dd Remove the DAALA_EC experiment.
This patch forces DAALA_EC on by default and removes the dkbool coder.

Change-Id: Icd2ff08efd7bf467adf554344111473cb357adf8
2017-05-25 18:31:31 +00:00
David Barker c747a78ea9 Fix bug in av1_optimize_b when tx64x64 is enabled
In both versions of av1_optimize_b, the code to calculate the
dequantized coefficient from a modified quantized coefficient
was not compatible with tx64x64.

Specifically, the new dequantized coefficient was calculated as an
offset applied to the original coefficient. This had a fixup block
for 32x32 transforms, but not for 64x64 transforms.

For simplicity, instead of extending the fixup block, we now
recalculate the dequantized coefficient directly.

BUG=aomedia:537

Change-Id: I86c1c8820f324ad3f6afd6a720ff59f754384a19
2017-05-25 18:29:07 +00:00
Alex Converse e16b2665c2 var_tx+intrabc: Fix infinite recursion
Change-Id: Ibbf0c14934d0bff316cfdf5c252c64b3e68c73e7
2017-05-25 16:55:14 +00:00
Tom Finegan c156224a40 Support CONFIG_LOOP_RESTORATION in the CMake build.
BUG=aomedia:76

Change-Id: Ifabdedd5e027e1efd87ba8ca1bbf0af06481bb5c
2017-05-25 16:48:41 +00:00
Tom Finegan db78450815 av1/av1_common.mk: Remove duplicate file ref.
Change-Id: I916eb8a3195bf1be2b73bafdc9a2279d404901ed
2017-05-25 16:48:41 +00:00
Tom Finegan 1738c1091f aom_dsp: Remove empty CMake target.
Change-Id: I6e79d605818806005b65197745ca1bb66efb3890
2017-05-25 16:48:41 +00:00
Tom Finegan 8bb36b416b Fix dylib build on macos.
Update version.sh to produce an acceptable version string
for Apple Clang to use when building the dylib.

BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=555

Change-Id: I5fb4d348cc56897125708cbd97df6246f65d9187
2017-05-25 16:33:30 +00:00
Zoe Liu e1787b97f1 Add a new experiment of var_refs
This coding tool is targeted to check redundant references available
to each frame at the frame level, and then try to save bits to avoid
coding redundant reference information at the block level.

Change-Id: I320178a9fe0cd806960318ac59659808675e5176
2017-05-25 15:33:51 +00:00