18311 Commits

Author SHA1 Message Date
James Zern
d37c22271c Merge "Add matching brace in aomenc.c" into nextgenv2 2016-10-20 19:38:57 +00:00
Sarah Parker
ea16b68986 Fix logical vs bitwise & bug
This was causing one of the global motion parameters to not
be centered at 0.

Change-Id: Ide32e3d177bed5613ab768a19b4e33b37692463a
2016-10-20 12:00:16 -07:00
Peter de Rivaz
130ca4d675 Remove the has_no_coeffs corner case
BUG=webm:1277

Change-Id: I052239e8a6c468da8704bdbbb663b59533c01be2
2016-10-20 19:38:26 +01:00
Angie Chiang
648aeb0b1b Add adapt_scan APIs and some helping functions
av1_init_scan_order
initialize data structures related to adaptive scan order

av1_update_scan_prob
update nonzero probabilities from nonzero counts

av1_augment_prob
embed r + c and coeff_idx info with nonzero probabilities.
When sorting the nonzero probabilities, if there is a tie,
the coefficient with smaller r + c will be scanned first

av1_update_sort_order
apply quick sort on nonzero probabilities to obtain a sort order

av1_update_scan_order
apply topological sort on the nonzero probabilities sorting order to
guarantee each to-be-scanned coefficient's upper and left coefficient
will be scanned before the to-be-scanned coefficient.

av1_update_neighbors
For each coeff_idx in scan[], update its above and left neighbors in
neighbors[] accordingly.

Change-Id: I64c4938057daf8e30e48609a00ecc08d2e3062f4
2016-10-20 11:20:40 -07:00
Zoe Liu
6cfaff95b7 Sync with aom branch for ext-refs
Plus a small code clean up. The experiment of EXT_REFS, compared against
the baseline, using Overall PSNR, now obtains a gain on lowres as:
Avg: -5.818; BDRate: -5.653

Compared against the previous EXT_REFS results on lowres, a tiny gain is
obtained as:
Avg: -0.047, BDRate: -0.063

(1) 780952 Add encoder first pass support to bi-prediction in EXT_REFS
(2) f91498 Add pred prob handling for new references in EXT_REFS
(3) e91472 Add decoder support for bi-direct prediction in EXT_REFS
(4) 0dbac9 Add encoder support to new references in EXT_REFS
(5) ad70cc Remove hard-coded number for EXT_REFS
(6) 9c1e2f Add the use of new reference frames at encoder in EXT_REFS
(7) 6d4fde Add the experiment flag of EXT_REFS

Change-Id: I26f7ca45b9ede7579fdb9d0d6a1a91f4334599bd
2016-10-20 10:55:11 -07:00
Angie Chiang
37fb8edd7c Add data structure of adpat_scan experiment
Change-Id: I163874ee64b9c348de2c7cc8e7b2852308734b0e
2016-10-20 10:00:10 -07:00
Yi Luo
157e45a44b Fix the overflow of av1_fht32x32() in 2D DCT_DCT
- Use range check function to avoid DCT_DCT overflow.
  We need to re-develop the column txfm side scaling/rounding. Now,
  we prefer to maintain the current BDRate level.
- Encoder user level time reduction <1% owing to av1_fht32x32_avx2.
- Add MemCheck unit test and fdct32() unit test.

Change-Id: I1e67030f67bc637859798ebe2f6698afffb8531c
2016-10-20 09:22:24 -07:00
Angie Chiang
8c2dc6f591 Add adapt_scan experimental flag
Change-Id: I1424690fa792b960a1cfb78bbcb37da6b9899ee6
2016-10-20 09:19:01 -07:00
Peter de Rivaz
f994855e8e Fix for AV1.TestTell
The tell functions return an unsigned integer.
This causes the AV1.TestTell test case to fail because
-1 is greater than 20 when treated as an unsigned integer.

Change-Id: I9dd1d7eb61260d30d1713a4917159fc6fe8eee42
2016-10-20 16:24:06 +01:00
hui su
9ff4134f54 Renaming in filter-intra sse4 code
Change-Id: Iff1786a92d164e6b9cfaf4a59ece79819494276f
2016-10-19 21:41:06 -07:00
hui su
344b643d59 Remove av1/common/intra_filters.h
Use a single header reconintra.h for all intra prediction
related codes.

Change-Id: Ib869447f8c482b534c890eab673e81ff830e8d85
2016-10-19 21:41:06 -07:00
hui su
5db9743fbb Seperate FILTER_INTRA from EXT_INTRA experiment
Prepare for the av1/nextgenv2 merge.

Coding gain (%):

               lowres     midres
ext-intra       0.69       0.97
filter-intra    0.67       0.83
both            1.05       1.48

Change-Id: Ia24d6fafb3e484c4f92192e0b7eee5e39f4f4ee6
2016-10-19 21:40:49 -07:00
Yaowu Xu
cfc5ac5034 Merge "Partition the ans experiment into 'ans' and 'rans'" into nextgenv2 2016-10-19 22:58:05 +00:00
Jingning Han
775d99f07e Offset speed feature setting index
Change-Id: If201cbd4175842f68e6dcfb0414ff16ca07e0881
2016-10-19 22:55:44 +00:00
hui su
251e151c3d Add matching brace in aomenc.c
Change-Id: Iccb75d5204f0f52f2c7d6e18d1f8223ce10f68ba
2016-10-19 15:31:51 -07:00
Steinar Midtskogen
c38afedb8d Define SIMD_INLINE using AOM_FORCE_INLINE
Change-Id: I7d6394e48e9b6093e5b523387ed250f371ee7fb9
2016-10-19 15:14:27 -07:00
Thomas
e28d92be97 Fix Visual Studio build.
Change-Id: I01608dfd597cc1d2bd4e73918aa29cf9251edb08
2016-10-19 15:14:27 -07:00
Thomas Davies
f693610a1a Step size and arithmetic coding for delta quantization.
Example performance: 1.8% bit rate savings using
the AQ test mode aq-mode=4 :
./aomenc --codec=av1 --ivf --tile-columns=1 --tile-rows=1 \
                 --kf-max-dist=1000 --kf-min-dist=1000 --cpu-used=0 \
                 --passes=1 --threads=1 --lag-in-frames=0 \
                 --end-usage=q --limit=600 --cq-level=42 \
                 --aq-mode=4 --error-resilient=1 out.bits FourPeople_1280x720_60.y4m

Change-Id: Iba01cf2732a57f3c27481ac2a3c8fc37bb9e5533
2016-10-19 15:14:27 -07:00
James Zern
7dec51534f AOM_FORCE_INLINE: fix always_inline attribute
Change-Id: Ia8ce146489713e137004ccf41faf35aa5645b8ae
2016-10-19 15:14:27 -07:00
Arild Fuldseth
07441165fe Support for delta-q at superblock level
Change-Id: I4128af44776d1f361bddc1fdffb75ed2224dbfa5
2016-10-19 15:14:27 -07:00
Nathan E. Egge
e734fcb114 Free memory allocated by daala_ec encoder.
Free the two memory buffers allocated by the daala_ec encoder when
 calling od_ec_enc_clear() from aom_daala_stop_encode().

Change-Id: If20e86374ea29e51ee59111012905e56039dd4cc
2016-10-19 15:14:27 -07:00
Steinar Midtskogen
f250e20d13 Move clpf_sse4_1.c to clpf_sse4.c in agreement with convention
Change-Id: Ia9adc46b8a4d08c5b8e0089ea1a1526df4f1e1dc
2016-10-19 15:14:27 -07:00
Yaowu Xu
fc5176f851 sync avg_test.cc with aom/master
Change-Id: I651db25bee8f83a9fc6dcd35db5007a002f171c0
2016-10-19 15:14:27 -07:00
Yaowu Xu
dc8a2c523f Merge "Always send frame size explicitly" into nextgenv2 2016-10-19 22:00:40 +00:00
Jingning Han
03b3514058 Add 2x2 directional intra predictors
Change-Id: Iaa25269a15231dadeaba0f4836c864fc10e858df
2016-10-19 21:58:09 +00:00
Yaowu Xu
0a3284cbb9 Merge "Fix build issues when --enable-aom-qm" into nextgenv2 2016-10-19 21:56:41 +00:00
Jingning Han
02935f5f1b Add tx_size to pixel number map
Change-Id: I789fa11638f155f1092a1e9260d26c7855d18e37
2016-10-19 14:52:53 -07:00
Yaowu Xu
8057103d2e Merge "Fix decodeframe.c format" into nextgenv2 2016-10-19 21:28:06 +00:00
Yue Chen
0651eced9f Merge "Remove OBMC from the experimental configure list" into nextgenv2 2016-10-19 21:02:15 +00:00
Yaowu Xu
2a813e41ce Merge "Add unit test for delta-q (aq-mode=4)" into nextgenv2 2016-10-19 21:01:03 +00:00
Jingning Han
8f6eb189e6 Fix decodeframe.c format
Change-Id: I2228a3d1778917ac760582fbec3c868be5d9ba1c
2016-10-19 13:48:57 -07:00
Arild Fuldseth
842e9b030f Always send frame size explicitly
This commit changes to send frame size explicitly when
error_resilient_mode=1. Purpose is to allow parsing of bitstream
after a packet loss.

Change-Id: I7d1c010a465aa18914762cc1a3e61db377304c08
2016-10-19 12:35:12 -07:00
Yaowu Xu
0dd046371f Fix build issues when --enable-aom-qm
Change-Id: I1a462675c06c4b2a5f8b4b347f23fec67feccdd0
2016-10-19 12:26:53 -07:00
Alex Converse
ec6fb649da Partition the ans experiment into 'ans' and 'rans'
The (new) ans experiment replaces the bool coder with uABS bools. The
'rans' experiment adds multisymbol coding.

This matches the setup in aom/master.

Change-Id: Ida8372ccabf1e1e9afc45fe66362cda35a491222
2016-10-19 12:03:15 -07:00
Yaowu Xu
870a72d6b5 Merge "Fix failing TestBitIO test with --enable-daala_ec." into nextgenv2 2016-10-19 18:59:20 +00:00
Yaowu Xu
e94767ae97 Merge "Change return type of tell and tell_frac to uint32_t." into nextgenv2 2016-10-19 18:59:08 +00:00
Yue Chen
48877de873 Remove OBMC from the experimental configure list
It was replaced by MOTION_VAR in commit cb60b18

Change-Id: I7ab625eef4dbae2e5585d9fa3b6873aa78b2c254
2016-10-19 18:45:34 +00:00
Arild Fuldseth (arilfuld)
9f28cb8f93 Add unit test for delta-q (aq-mode=4)
Change-Id: Ic529355880b4dbd076a7e46e7b03a49a1ee5f6f0
2016-10-19 11:35:40 -07:00
Urvang Joshi
66b1fcc924 Merge changes I3922dea2,I3bab2848,I21f7478a,Ida5de713,Ib9f0eefe, ... into nextgenv2
* changes:
  Fix warnings reported by -Wshadow: Part4: main directory
  Fix warnings reported by -Wshadow: Part3: test/ directory
  Fix warnings reported by -Wshadow: Part2b: more from av1 directory
  Fix warnings reported by -Wshadow: Part2: av1 directory
  Fix warnings reported by -Wshadow: Part1b: scan_order struct and variable
  Fix warnings reported by -Wshadow: Part1: aom_dsp directory
  Move STAT_TYPE enum to source file.
  Code cleanup: mainly rd_pick_partition and methods called from there.
2016-10-19 18:25:52 +00:00
Nathan E. Egge
e58781d329 Fix failing TestBitIO test with --enable-daala_ec.
Change-Id: I6a885b7c6315261d67a9c2fcde914206b8301f4a
2016-10-19 10:54:40 -07:00
Nathan E. Egge
b244f39627 Change return type of tell and tell_frac to uint32_t.
The bit accounting functions aom_reader_tell() and aom_reader_tell_frac()
 return the number of bits and 1/8th bits respectively.
This patch changes the return type from ptrdiff_t which is signed to
 uint32_t which is unsigned.
The size_t type is not used since we only care about the number of bits
 or 1/8 bits per entropy coder context and we don't expect to code more
 than 512 megabits per tile.

Change-Id: I84a119d1f52829dcbdb66a92656eacca06e42b11
2016-10-19 10:53:52 -07:00
Hui Su
3e908b7f44 Merge "Temporary fix for 4X8 block intra prediction." into nextgenv2 2016-10-19 16:55:20 +00:00
Hui Su
e22a480225 Merge "Fix format in set_offsets()" into nextgenv2 2016-10-19 16:54:30 +00:00
Angie Chiang
d83fc3b8d9 Merge "Add av1_fdct64_new and av1_idct64_new" into nextgenv2 2016-10-19 16:34:24 +00:00
Urvang Joshi
4145bf05ae Fix warnings reported by -Wshadow: Part4: main directory
Now that all warnings are taken care of, add warning flag -Wshadow to
configure.

Note: Enabling this flag for C++ generates some useless warnings about
some function parameters shadowing class member function names. So, only
enabling this warning for C code.

Cherry-picked from aomedia/master: b96cbc4

Change-Id: I3922dea2e6976b16519c4aa4d1bd395c198134f1
2016-10-19 07:56:53 -07:00
Peter de Rivaz
74d0ad844e Fix for var_tx context update
The tx_partition_set_contexts function changes tx_size even
for blocks coded with a rectangular transform.
This causes an internal rd inconsistency when using all of
CONFIG_VAR_TX, CONFIG_RECT_TX, CONFIG_EXT_TX.

Change-Id: Ia45d4a8893b0961534219bb96d9652719038c7a1
2016-10-19 11:43:11 +01:00
Yaowu Xu
caf2023ae1 Reorder includes
Change-Id: I97487bf353471bf9d245cd620780adfb1d3fc2b1
2016-10-19 04:34:49 +00:00
Michael Bebenita
6048d05225 Bit accounting.
This patch adds bit account infrastructure to the bit reader API.
When configured with --enable-accounting, every bit reader API
function records the number of bits necessary to decoding a symbol.
Accounting symbol entries are collected in global accounting data
structure, that can be used to understand exactly where bits are
spent (http://aomanalyzer.org). The data structure is cleared and
reused each frame to reduce memory usage. When configured without
--enable-accounting, bit accounting does not incur any runtime
overhead.

All aom_read_xxx functions now have an additional string parameter
that specifies the symbol name. By default, the ACCT_STR macro is
used (which expands to __func__). For more precise accounting,
these should be replaced with more descriptive names.

Change-Id: Ia2e1343cb842c9391b12b77272587dfbe307a56d
2016-10-19 04:34:29 +00:00
Debargha Mukherjee
4bacfcffd0 Merge "Fix ransac random generator seeding" into nextgenv2 2016-10-19 01:39:08 +00:00
Yaowu Xu
321556a557 Merge "Update segment tree_cdf per frame." into nextgenv2 2016-10-19 01:09:52 +00:00