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

721 Коммитов

Автор SHA1 Сообщение Дата
clang-format 55ce9e0f35 apply clang-format
Change-Id: Ib1b5dde5d4c6479c968cd7d7a4a1d01abae1fcf6
2017-02-15 22:27:12 -08:00
Zoe Liu 1b672d3ff7 Make convolve_round compiled without dual_filter
Change-Id: I532e46b3947ca3f5898a2da61fb6b82c2f4bd5c6
2017-02-15 18:46:27 +00:00
David Barker 338e135ce7 Fix compile error with global-motion + highbitdepth
Change-Id: If6b80d302a24db35f0e214865ddcdaae195dc032
2017-02-14 23:18:43 +00:00
Debargha Mukherjee b3c43bc048 Add a macro to control use of domain txfm filter
Allows DomainTxfm filters to be turned off for experimentation.
Also expands the parameter set for the Self guided filters.

Change-Id: I68fdb8e079a2464d80b3a4a990005c49baaaf0b8
2017-02-14 18:00:48 +00:00
Debargha Mukherjee 0be0aa13b6 Fixes a bug introduced in ext-inter with cb4x4
Wedges were wrongly indexed when cb4x4 was on.
Brings a bit of the gain back when ext-inter + cb4x4 are turned on
together.

Change-Id: Id2bd359e70546cf0ea9cf31656064711c9894177
2017-02-14 17:59:22 +00:00
Urvang Joshi 92b90f3022 Add comments about some default probability tables.
Change-Id: I070ee1acde80c99576d30f2611b6c653834b3e9b
2017-02-13 22:54:56 +00:00
David Barker e0b7151138 Fix compile error for global-motion without ref-mv
The reference frame handling in av1_find_mv_refs introduced
in https://aomedia-review.googlesource.com/c/6067/ broke the
compile when global-motion is enabled but ref-mv is not.
This patch adds the missing logic, allowing this case to compile
again.

Change-Id: I914887eb56d28a700b2917d086447bdbb314f35d
2017-02-13 18:20:24 +00:00
Tom Finegan 17ce8b170f Remove file base name collisions.
Change-Id: I1bf9002c159563d0e5238b26d1515ef305d416dc
2017-02-13 18:07:27 +00:00
Angie Chiang 7a2af6ce2f Separate Y and UV planes' filter declaration
This allows Y and UV planes use different filter kernel

Change-Id: I524aa3f6ffbc439acee6660bdbaf5cf2059379b5
2017-02-13 02:19:46 +00:00
Angie Chiang e3a4c1c7e0 Pass plane into get_conv_params###
This CL allows us to use different interpolation filters for
YUV planes.

Change-Id: I9446d43ae2be5a9a48b8a4cb6efcac43df6196d5
2017-02-13 02:19:46 +00:00
Angie Chiang 6f938489dd Use 6-tap filters for smooth and smooth2 filter
Change-Id: I1bf9c2fcd664fb4012d67e420cac613eaca735a8
2017-02-13 02:19:46 +00:00
Jingning Han 5d0b310b33 Make adapt-scan support multi-thread encoding
This commit makes the adaptive scan order system support multi-
thread encoding. It fixes unit test failure issue associated with
AV1/AVxEncoderThreadTest.EncoderResultTest/0.

BUG=aomedia:353

Change-Id: I61cbf9531c8deab97fb3bb17428d0b2a63cf309a
2017-02-12 20:08:59 +00:00
Angie Chiang 118bf67cb6 Implement shorter-tap first in convolve_round
The performance change is 0.004% on lowres

Change-Id: If3702ba6377ac42997e7d49b8959ff16fb182daa
2017-02-12 19:38:43 +00:00
David Barker befcc42572 Fix segfault with loop-restoration on x86.
The WienerInfo struct requires a 16-byte alignment on x86,
since it contains filter coefficients which are loaded using
SSE aligned load instructions. But on 32-bit x86, the default
alignment of aom_malloc/aom_realloc is only 8 bytes, leading
to occasional segfaults.

To fix this, rather than using aom_realloc to resize WienerInfo
structures, we always free and re-allocate them using aom_memalign

BUG=aomedia:345

Change-Id: Ib1b2a42d4a2fa215dcc81ea481c51271ab068a37
2017-02-12 10:32:52 +00:00
Steinar Midtskogen f844e6eff9 Speed up CLPF when there's nothing to clip
Gives 7% speed-up in the CLPF processing (measured on SSE4.2).

Change-Id: I934ad85ef2066086a44387030b42e14301b3d428
2017-02-10 23:00:16 +00:00
Steinar Midtskogen 4f0b3ed8b8 Retune the CLPF kernel
CLPF performance had degraded by about 0.5% over the past six months,
which isn't totally surprising since the codec is a moving target.
About half of that degradation comes from the improved 7 bit filter
coefficients.  Therefore, CLPF needs to be retuned for the current
codec.

This patch makes two (normative) changes to the CLPF kernel:

* The clipping function was changed from clamp(x, -s, s) to
      sign(x) * max(0, abs(x) - max(0, abs(x) - s +
             (abs(x) >> (bitdepth - 3 - log2(s)))))
  This adds a rampdown to 0 at -32 and 32 (for 8 bit, -128 & 128
  for 10 bit, etc), so large differences are ignored.

* 8 taps instead of 6 taps:
               1
    4          3
  13 31  ->  13 31
    4          3
               1

AWCY results: low delay  high delay
PSNR:           -0.40%     -0.47%
PSNR HVS:        0.00%     -0.11%
SSIM:           -0.31%     -0.39%
CIEDE 2000:     -0.22%     -0.31%
APSNR:          -0.40%     -0.48%
MS SSIM:         0.01%     -0.12%

About 3/4 of the gains come from the new clipping function.

Change-Id: Idad9dc4004e71a9c7ec81ba62ebd12fb76fb044a
2017-02-10 23:00:16 +00:00
Angie Chiang 822eea3296 Exclusively uses 12-tap filter in convolve_round
Performance drop by 0.084% on lowres

Change-Id: I2bcaae96b68033a0af7a1da988505623bc14ed94
2017-02-10 16:55:53 +00:00
Thomas Daede 1dbda1b918 Convert PVQ coefficient handling functions to tran_low_t.
Change-Id: Iad2b526d65865cbcb2119aca21686563ca8e97fd
2017-02-09 22:07:36 +00:00
Steinar Midtskogen 73ad523642 Add support for disabling CLPF on tile boundaries
Change-Id: Icb578f9b54c4020effa4b9245e343c1519bd7acb
2017-02-08 06:41:20 +00:00
Sarah Parker 42d9610a79 Avoid sending bits for the compound type for sub 8x8 blocks
The only compound mode used with sub 8x8 blocks is COMPOUND_AVERAGE, so
we don't have to send anything in this case

Change-Id: I90d0162e5f7f1ad205e65094293cde2a48eb77b1
2017-02-08 04:37:16 +00:00
Angie Chiang 7927a97db2 Add av1_convolve_2d_facade
When convolve_round is on, av1_convolve_2d_facade will be used for
interpolation rather than av1_convolve. Will remove the experiment
code of convolve_round experiment from av1_convolve in another CL.

So far we use 4-bit rounding in the intermediate stage on top of using
post rounding for compound mode after the last stage.

This will give us roughly 0.45% gain on lowres , 0.39% on midres and
roughly 0.6-0.7% on hdres
Altogether, is 1.15% on lowresm, 0.74% on midres and roughly 1.7-1.8% on
hdres

Note that there no restriction usage of 12-tap filter in the CL.
Adding that, we will lose roughly 0.1% again on lowres.

Change-Id: I6332e1d888e28a3b3ddc29711817d66e52cb5cdf
2017-02-06 21:05:49 +00:00
Alex Converse a9598cd6bf ec_multisymbol: Split off new new_tokenset experiment
The new_tokenset experiment replaces the unconstrained tokenset with a
multisymbol alphabet in an inventive way.

Tested configurations:
new_tokenset + ec_adapt, new_tokenset, ec_multisymbol

Change-Id: I846ab2e51c2a1dc3f2f9904ed8c47a8e98f853c5
2017-02-06 21:03:01 +00:00
David Michael Barr fb99317365 Reset PVQ chroma QM interpolation to constant identity QM
The PVQ QM interpolation code needs to be adapted to AV1 ranges.

av1_float_pvq_dist_scale_AM_5f_Jan31@2017-02-02T08:57:23.156Z
 -> av1_float_pvq_dist_scale_AM_5f_Jan31_crfix@2017-02-02T15:14:40.477Z

  PSNR |  PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
1.8501 | -29.0766 | -6.6775 |   1.8421 | 1.8252 |  1.8228 |    -9.9734

Change-Id: Ib72c1f8eeccf806f8d719866ce80172b6908643e
2017-02-04 13:13:31 +09:00
Fangwen Fu 7b9f2b3b0d add horizontal tile dependence support
Change-Id: I1050b69045407381d4626b65a0bf6f35957a66f4
2017-02-04 00:45:16 +00:00
Yushin Cho e4c46918b1 Enable an activity masking of PVQ
By default, the activity masking is used with PVQ.
In addition to '--enable-pvq', '--enable-daala-dist' is also
required by configure to use the activity masking.

Change-Id: I5100a1db992f0e693e61daf5439de8ae8c64a752
2017-02-03 23:31:36 +00:00
Yushin Cho 3ebfe2a4ed Fix fixed-pt PVQ compand/expand outputs zero gain
For fixed-point version of PVQ, which is current default,
added MAXI(1, ) to limit the minimum companded or expanded gain to be one.
Previously, gain compand/expand function, which is invoked when
activity masking is enabled, sometimes outputs zero
then triggered the assert(gain != 0).

Metric change from floating-pt to fixed-pt PVQ is:
PSNR  PSNR-HVS  SSIM  CIEDE-2000  PSNR Cb PSNR Cr MS-SSIM VMAF
0.02  0.10      0.08  0.11        0.01    0.02    0.13    -0.30

Change-Id: I64a60d1970d35a26af227841e4a5e50a89ddc44c
2017-02-03 23:31:10 +00:00
Thomas Davies fc1598ad3b EC_MULTISYMBOL: Include EOB in multisymbol encoding.
RD search and trellis encoding are still sub-optimal.

Change-Id: I233979909118241a0c78761c1d5c2cd6857915e0
2017-02-03 22:22:42 +00:00
Yue Chen 19e7aa82bd Remove interp filter for non-translation global mv
BDRATE results:
lowres: -0.880% (up from -0.844%)

Change-Id: I017c0beddcc687148fed33c1e9963e05f1eaf6ea
2017-02-03 21:10:00 +00:00
Jonathan Matthews 13754540ef Bugfix: ensure for pareto coef that there are no zero range encodings
Introduced by change I98b33fab6b9f52690f6ad618ac55e725a97be056

BUG=aomedia:349

Change-Id: Ib6df52ac2442f60c159bae2271793b7570d53a19
2017-02-03 20:11:44 +00:00
Thomas Davies ab78067c51 EC_MULTISYMBOL: Add block zero (CBP) counts and probs.
Preparation for merging EOB_TOKEN. The block_zero value
corresponds to the first EOB_TOKEN: other EOB_TOKEN values will
be merged with non-zero values.

Change-Id: I94036783ee240fa916a79c544ecd716a9c24fa59
2017-02-03 12:38:39 +00:00
Ryan Lei 9b02b0e6cd deblocking_across_tiles->loopfilter_across_tiles
This commit renames deblocking_across_tiles to loopfilter_across_tiles, 
to get ready for dering and clpf integration.

Change-Id: Id25b051da9b1e5cb92f35a9619662597462d9537
2017-02-03 01:25:52 +00:00
Zoe Liu 2768ebcbac Code cleaning on reconinter.c
Change-Id: I32c6b9d8de6d0ae373d22e366c46f4d4c5d6a9b6
2017-02-02 11:22:15 -08:00
Angie Chiang dbfec2a816 Add convolve-round experiment
Change-Id: I02a019b1c11b3ee4ae32d424cb6ef2f8ae554824
2017-02-02 17:40:40 +00:00
Alex Converse 2ce4bd4208 ec_multisymbol: Add defines CDF_PROB_BITS, CDF_PROB_TOP
Change-Id: I6c1717ad82d05ebe22327aec6989af2c0db336e3
2017-02-02 15:09:10 +00:00
Thomas Davies 8e0b8697d2 EC_MULTISYMBOL: Add new context tables.
These are optimized for EOB_TOKEN being associated
with the current position, not the previous.

CBP tables cover EOB_TOKEN for the the whole block.

This change causes a performance regression until
EOB_TOKEN is merged into the coding scheme.

Change-Id: Ica3a12ed97285cbae204ce3cc1a7e658ebcacc9f
2017-02-02 15:08:54 +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
Sebastien Alaiwan d0e23b4061 Merge dct_const_round_shift functions.
Change-Id: I73e3eec0b8fd17c3f9b9f52afc9fac43f3043028
2017-02-01 16:35:09 +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
Sarah Parker c2d3871501 Make global_motion work with ext_inter
Change-Id: I2a490e144099d7692296992528192c1f11d2c06f
2017-01-31 17:59:51 +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
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
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