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

20427 Коммитов

Автор SHA1 Сообщение Дата
Michael Bebenita efacce9323 Fix CDEF SIMD code for cb4x4
Change-Id: Iec83111328d5343250b9a35dc2896541393f3efa
2017-04-19 03:27:34 +00:00
Sean Purser-Haskell a57f77f2f4 Fix array bounds overflow in warped test.
Change-Id: Ie92cd0a4a97312f40fe8604ac671dc43188b5647
2017-04-19 01:00:00 +00:00
Alex Converse 576f0652fe intrabc: Add experiment
Change-Id: If73aee341df8e9fe2d2a4e46f0bf4a0180cd4b5f
2017-04-18 23:10:39 +00:00
Ralph Giles 19944291af Don't export kMinCompressedSize.
kMinCompressedSize was defined as a global constant, so it
was exported by default and possibly causing duplicate
symbol issues for applications. In particular, libvpx also
exports this symbol.

Instead, move the definition into the only function which
references is. As a local variable it is hidden from the
linker and not part of the global symbol table.

Change-Id: If8b3bc4c487197237adb04749cd3dd4792e39893
2017-04-18 23:01:40 +00:00
Fangwen Fu 2d422fb172 Set palette_throughput experiment default on.
Change-Id: I6c0897f9d432121c425ae1cea34bd7f72d207c72
2017-04-18 21:40:51 +00:00
Ryan Lei c81ea6e04c unify the intra prediction angle options for different block sizes
this change unifies the intra prediction angles so that 8x8 block has
the same number of angles and angle steps as 16x16 and 32x32 blocks.
the benefit is that HW implementation can have the same logic to
handle all block sizes. otherwise, prediction angles for 8x8 is
different from other block sizes, which requies special logic.

Change-Id: I99f8d82b4b96fa1442a657b56a93e326f1eec321
2017-04-18 20:57:08 +00:00
Angie Chiang 2ed03a37e6 Redo txfm/quant in av1_txk_search
Change-Id: I622d499187f3881b274ca6cf3745f51fa0103b18
2017-04-18 20:02:40 +00:00
Angie Chiang cd9b03fb76 Add txk_sel exp
This will separate the transform kernel selection from lv_map
experiment such that we can evaluate each feature's performance
separately

Note that txk_sel is build on top of lv_map

Change-Id: I5bd1ea99be30000efcdc2bcd42de002b78b1c3c8
2017-04-18 20:02:40 +00:00
Timothy B. Terriberry f6c807c5a1 ec_smallmul: Convert CDFs to iCDFs.
Hoists the iCDF conversion outside of the daala code.
We directly store 32768 - cdf[i] in each cdf, to avoid having to
convert the whole array every time a symbol is coded.

This works with ec_multisymbol, new_tokenset, and ec_adapt.

Compared to Change-Id Idbbd3743e9189146cb519d5b984bdabd69e3f4c0,
this improves decoder runtimes by 1.15% at QP=55 and 2.64% at
QP=20.

The overall slowdown of ec_smallmul is now 0.12% at QP=55 and
0.44% at QP=20.

Encoder output should not change, and all streams should remain
decodable without decoder changes.

Change-Id: I06b8b75b667bb1bc4ddffc78f895e48a09f4c578
2017-04-18 18:47:29 +00:00
Yi Luo f8e87b4658 Deliver the eob threshold to inverse transform
Change-Id: Iaa8ab77eb4a982759939fb5fc475f699cb21a4e1
2017-04-18 18:35:02 +00:00
Yi Luo a4d879923f Move width branch out of height loop
- AVX2 Copy and average functions are faster,
  Copy function: ~4%-57%
  Avg function:  ~17%-54%

Change-Id: Ib1732cd90eb353379ef50ecbb1e207860969f1c3
2017-04-18 18:00:35 +00:00
zhipin deng 1c25c758b2 enable mv_compress by default
Change-Id: Idcf587227a7e508344d00a4d456c747b4f8d109b
2017-04-18 17:56:51 +00:00
Thomas Daede 8082614e81 Remove rt deadline.
The "good" speed levels are universally better than the "rt" ones,
running faster to achieve the same quality.

rt mode also turned off alt refs and lag-in-frames, but these
are still accessible separately (and the low latency test case
explicitly sets them).

Some features were used by the rt scale and not the good scale.
Two additional "good" levels, 7 and 8, were added to accomidate
these features and not reduce test coverage.

Change-Id: I3a6a78ddb664511762c197bc41f3a9909665b565
2017-04-17 23:17:34 +00:00
Fergus Simpson 350a9b7668 bitstream-dbg: Add missing include to decodeframe
If daala_ec is disabled while bistream_debug is enabled, decodeframe.c
fails to compile due to aom_util/debug_util.h not being included
directly.

This patch just adds the missing include so that decodeframe.c will
still build with bitstream_debug enabled and daala_ec disabled.

Change-Id: I2e7eebdd17431a804be5b00239a9ae581e73f731
2017-04-17 15:34:50 -07:00
Sarah Parker 366619263f Avoid exiting tx size search when tx-size is square
This fixes a mismatch in ext-tx + rect-tx introduced
by a refactor in 2d147c1603.

BUG=aomedia:422

Change-Id: I5bc40b2dcd7bf53b20c1bea454aae49f2d5dfe67
2017-04-17 20:49:01 +00:00
Yushin Cho 27acc47869 Skip adding zero siginal to prediction with DC only idct
If DC only idct gives zero, then we can skip the steps which
add zero signal to predicted signal.
DC only idct cases will occur more frequently at lower bit rates.

Similar changes can be done for C version of high bit depth idct functions.

Change-Id: I53af22904568f7043091710da70ca8299bf361c5
2017-04-17 20:43:28 +00:00
Michael Bebenita b5bf51ec82 Fix inspection mi grid size.
Change-Id: I152837d872ce5b234c62c7190a2350cea710d579
2017-04-17 20:24:46 +00:00
Michael Bebenita f1207b6002 Compress analyzer data using RLE.
This significantly reduces the size of the exported
data and improves analyzer decoding time.

Change-Id: I0553c76630009754038a86b634b545db24fb3dd6
2017-04-17 20:24:39 +00:00
Yaowu Xu a631722c36 Fix build for motion-var and ext-inter
Change-Id: If7a3dc0006543c30f55f4ed2b33f28b69395bd60
2017-04-17 19:20:11 +00:00
Yue Chen f0dfc03d88 Changes for chroma u8x8 obmc
(1) Add a macro DISABLE_CHROMA_U8X8_OBMC to enable(one-sided)/turn
off obmc in under 8x8 chroma blocks.
(2) When it is enabled, use the above neighbor in chroma 4x4 obmc

Change-Id: I2373e6698fd56da7f99653d77be2b7284b3e74f2
2017-04-17 18:57:22 +00:00
Angie Chiang c2ebfbfc89 Turn on tx_type search when sb_type < BLOCK_8X8
Change-Id: I8d9686c36ebf7057c4432bb5a29ade78dc21d0a7
2017-04-17 17:46:42 +00:00
Jingning Han 3ca0e67298 Fix enc/dec mismatch in global motion
Resolve an enc/dec mismatch issue when global motion is turned on.

BUG=aomedia:424

Change-Id: Ifad02fab4412588527ec7e8b24ab9b8c6327e5ba
2017-04-17 15:53:42 +00:00
Jingning Han 041c67b9c7 Singularity handling in Gaussian elimination
When the fwd Gaussian elimination process encounters diagonal
element as zero value, the linear equation does not have unique
solution. Return the linear solver state as unsolvable in such
case. This resolves a floating point exception issue due to divided
by zero in the loop restoration filter.

BUG=aomedia:437

Change-Id: I3c67525691a3003f9f470e8a0d5b4ee187cba963
2017-04-17 14:45:07 +00:00
Debargha Mukherjee 8c41024b48 Reduce prec of matrices/vectors for warp estimate
Reduces precision of matrices by 2 bits.

No material change in performance.

Change-Id: I549a27da1dcb381fb329c345ee280dbd86b45bac
2017-04-17 05:46:31 +00:00
Angie Chiang cf50989eb3 Fix rd bug in av1_search_txk_type
Change-Id: I585999b1709303dee8d1c7bf626b5cd0ef36341c
2017-04-16 23:44:54 +00:00
Angie Chiang 05917873d7 Correct the tx_type cost for lv_map exp
Change-Id: Ia5e565f910c6d0c0bc6b0dc62f72a5df1346d06e
2017-04-16 23:44:54 +00:00
Angie Chiang b6d770cd5d get_tx_type after av1_read_coeffs_txb_facade
In lv_map experiment, tx_type will be decoded after
av1_read_coeffs_tx_facade.
So one should only call get_tx_type after that.

This CL fix a mismatch happens in lv_map

Change-Id: I91193f0952e82e6ee53b63c51305f0eafbbf29c9
2017-04-15 18:32:31 +00:00
Angie Chiang 39b06eb87c Add plane to tx_type read/write/update functions
This is for lv_map experiment

Change-Id: Ie000f7850efac32ffb46b9a4679cff2814c6246a
2017-04-15 18:32:31 +00:00
Angie Chiang de58e49fb5 Decode tx_type in av1_read_coeffs_txb()
Change-Id: I3e9d9b3b59ee179b0fd24da2f0366ec841d2cfcf
2017-04-15 18:32:31 +00:00
Yi Luo d4e3c21acc Fix EOB threshold array size
- TX_SIZES_ALL is the correct macro to cover all txfm sizes.

BUG=aomedia:435

Change-Id: I035a8395a78982e5b19857a3ba5f9d9f657b7902
2017-04-14 23:52:28 +00:00
hui su 3dfe608f3b Enable ext_intra by default
Change-Id: Id7a257fb56f2e435fadb9202f775c5d12fc1bea6
2017-04-14 22:33:12 +00:00
Debargha Mukherjee 6ae588f60a Reduce array sizes for Wiener update steps
Change-Id: Iff0cb1d492c7a8c2035b9bd752b1d00260135672
2017-04-14 20:26:47 +00:00
Timothy B. Terriberry 5b4a7264b5 pvq: Remove non-dyadic CDF initialization.
This was still being used for CDFs whose size might not match the
declared array size. We replace it with an intialization macro
intended explicitly for this purpose.

Change-Id: I65d9a3c871e1d1bdd906f20ff3a264f58d8e5620
2017-04-14 19:07:43 +00:00
Timothy B. Terriberry d5b89d0d07 ec_smallmul: Simplify binary read/write.
This should be the same number of operations as the non-ec_smallmul
version (though ideally we'd use the real 15-bit probability
natively).

Encoder output should not change, and all streams should remain
decodable without decoder changes.

Change-Id: I2998a77a02f566cd0c82c415395637acf49b5a97
2017-04-14 19:07:43 +00:00
Timothy B. Terriberry ead52876d6 daala_ec: Convert the decoder to use iCDFs
This only changes the internal coding engine. We convert CDFs into
iCDFs at the "bool" reader <-> daala_ec boundary.

Decoder output should not change.

Change-Id: I483dfe3e5588d2038c3c7ec4cd5ba62d6699b920
2017-04-14 19:07:43 +00:00
Timothy B. Terriberry 881f109bf3 daala_ec: Invert the internal state of the decoder
This removes one subtraction from the CDF search loop (reducing the
dependency chain for reading from the CDF) at the cost of one
increment and decrement during renormalization (easily absorbed by
the reorder buffer).

There should be no change in decoded output.

Change-Id: Ia7905bb8ca7c5d4ab73f23ccc61bcd3432349aa2
2017-04-14 19:07:43 +00:00
Timothy B. Terriberry 41b4f75b87 daala_ec: Convert the encoder to use iCDFs
This only changes the internal coding engine. We convert CDFs into
iCDFs at the "bool" writer <-> daala_ec boundary.

Encoder output should not change, and all streams should remain
decodable without decoder changes.

Change-Id: Id3ac7352926497bf6f7bc371ab9bc76e9a3569d5
2017-04-14 19:07:43 +00:00
Timothy B. Terriberry 033e53688f daala_ec: Remove non-dyadic functions.
Encoder output should not change, and all streams should remain
decodable without decoder changes.

Change-Id: Id1f1b0f2f02c3b46f150a93c451bf48abd0782ca
2017-04-14 19:07:43 +00:00
Ryan Lei dd6fa06a06 update parallel_deblocking experiment with more filter tap options
this change adds the following filter tap options:
1. add options to replace 15 tap filter with 9 or 11 tap filter
2. force chroma plane to only use maximum 7 tap filter

above options are disabled by default

Change-Id: Iab90a613210c1adaf4475976e9ed7e78ac30803b
2017-04-14 18:49:07 +00:00
Zoe Liu c3571bc88f Adjust encoder rate allocations for ext-refs
This CL is targeted to improve the objective/subjective quality of the
"ext-refs" coding tool.

Tuned the frame rate factors as follows:

(1) BRF_UPDATE:
    Decreased from INTER_HIGH (1.5) to GF_ARF_LOW (1.25);
(2) Both LAST_BIPRED_UPDATE and BIPRED_UPDATE:
    Increased from INTER_LOW (0.80) to INTER_NORMAL (1.00)
, which is to reduce the bits allocated to the BWEDREF frame whereas
to increase the bits allocated to the bi-directionally predicted
frames.

Obtained a coding gain in overall PSNR as follows, compared against
the original ext-refs:

lowres: BDRate -0.181%
midres: BDRate -0.090%
hdres:  BDRate -0.701%

Change-Id: Id001f3b124d833da9f80eba4cdec2ca3f6ba9d82
2017-04-14 18:28:44 +00:00
Sarah Parker 4c10a3c287 Refactor gm/wm/obmc for cleaner warping interactions
This creates a central function which defines when a
block should be warped. It also refactors the
WARPED_MOTION code so that all calls to av1_warp_plane
happen in the same location.

No change in performance.

Change-Id: Icaf9ec7700d34523809258594bb9843bb2975f46
2017-04-14 18:04:23 +00:00
Dake He 97f56645a4 [optimize-b] Use a greedy search method
The greedy search method improves the BD-rate over the baseline by
more than 0.2% for lowres test set. Larger gain 0.55% is observed for hdres test set.

[2017.04.06] Cleanup to remove redundant computation. On a local linux
machine, the greedy method is now faster than the trellis method in
encoding the first 100 frames of foreman_cif. However, the BD-rate seems
to become smaller due to the recent changes to the codebase.
[2017.04.06-2] Style changes to meet the requirements.
remove "greedy-optimize-b" in configure
[2017.04.10] Move the changes under the macro USE_GREEDY_OPTIMIZE_B
[2017.04.11] Adjust rdmult to accommodate CpuSpeedTest
[2017.04.12] Set USE_GREEDY_OPTIMIZE_B to 0 at the request of debargha@.
[2017.04.13] Move greedy implementation of optimize_b into a separate
function with the same name (selected by USE_GREEDY_OPTIMIZE_B, default
is 0)

Change-Id: Ic15534f8d696d5f02e8f2e3e9f08b52e41e9efd2
2017-04-14 17:07:43 +00:00
Sebastien Alaiwan e5728a955a Simplify coefficient range checking
Deduplicate implementations of check_range, and deduplicate the call
to aom_read_bit.

Change-Id: I63b023758248717125e4df6d1c382d4c517bae84
2017-04-14 16:35:24 +00:00
Angie Chiang a9f9a31cb2 Modify av1_read_tx_type for lv_map exp
Change-Id: I422dfd9d7afe9f7baa04a962e19c8a92d5c12eeb
2017-04-14 16:16:23 +00:00
Angie Chiang 1628fccb3f Write/update tx_type per txb in lv_map exp
Change-Id: I052721017cddd57ff9995e8dd442e4b3436a0b48
2017-04-14 16:16:23 +00:00
Angie Chiang b14b73f92f Add av1_update_tx_type_count()
This will make the code cleaner and lv_map experiment will be able
to reuse this function.

Change-Id: I885336117daa0090e16f1bb7a0c3e7bb54105410
2017-04-14 16:16:23 +00:00
Angie Chiang c31ea682c2 Modify av1_write_tx_type for lv_map experiment
Change-Id: If129748d918995efcc58169d153a0950eeec5efb
2017-04-14 16:16:23 +00:00
Frederic Barbier 550a117579 Fix loop-filter in ALT_INTRA
Avoid future issues by adding related sanity check on mode_lf_lut size.

Change-Id: I689a90c07ee2b79debf838304cfca0e34783e5bf
2017-04-14 07:18:30 +00:00
Jean-Marc Valin 70f0e5eb8b Only filter the blocks we need to filter (rather than use threshold=0)
Change-Id: Iddb2103452817e9624a28794cab923f00c3e9924
2017-04-14 05:59:49 +00:00
Yaowu Xu 29f1568e14 Use int16_t for warp parameters
This is to fix compiling issues with aom-highbitdepth.

Change-Id: I66ee73e014a028536747e55209f20be81e906267
2017-04-14 04:36:25 +00:00