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

19917 Коммитов

Автор SHA1 Сообщение Дата
Tom Finegan 188880b69f Remove test support from aom_dsp.cmake.
Removes a dupe. The CONFIG_MOTION_VAR testing support exists
in test/test.cmake.

- Remove the source file references.
- Remove setup_aom_dsp_test_targets().

Change-Id: Ifa034582223641d6d89a3274ff293c1e65cbb73d
2017-03-01 15:24:05 +00:00
Tom Finegan 677bdf5634 Fix cmake user config storage.
Defer include of aom_config_defaults.cmake until config detection is
completed to allow for accurate storage of config information.

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

Change-Id: I7fd71696d564c625531025555e923b7ebf686451
2017-03-01 15:21:28 +00:00
Tom Finegan 9af968fc18 Fix high bit depth build in cmake.
Fix the mistyped variable name that smashed a source list.

Change-Id: Id654ec06d2a1c479de5f61bb8c48e9e1df51086b
2017-03-01 15:21:23 +00:00
Sebastien Alaiwan cb57c95a6a Fix potential integer overflow in range checking
Change-Id: I20b951bb67f4c2147055751a8cd9534ceddc7215
2017-03-01 08:14:21 +00:00
Sebastien Alaiwan 07e33f4ee4 Fix integer overflow.
Found using the undefined behaviour sanitizer (-fsanitize=undefined).

Change-Id: I5534a97c0e38f76b38c6a53b42759b0b676e360a
2017-03-01 08:13:48 +00:00
James Zern 8c636c1254 simd_cmp_impl,TestSimd*Arg: break on failure
check for googletest failures as well as mismatches. this greatly
reduces the error output and time to failure.

BUG=aomedia:371

Change-Id: Ic617905430a8ec39fbee2af9ce6655a8ef6796c0
2017-02-28 21:01:47 -08:00
Jingning Han 07441df3c1 Make ec-multisymbol work with rectangular transform size
Resolve the encoding failure when ec-multisymbol and rectangular
(rect-tx or var-tx) are both turned on.

Change-Id: I708ed66d907c5928adecfd2a53498566296594d6
2017-03-01 03:00:37 +00:00
James Zern fd2b1b8153 make: fix missing headers in dist
Change-Id: I259f2983d1e9446f3e29c74f44ae583a676ce81f
2017-03-01 01:43:44 +00:00
James Zern 5f8361a7c0 get_prob(): rationalize int types
promote the unsigned int calculation to uint64_t rather than int64_t for
type consistency

cherry-picked from libvpx:
47d6f16a0 get_prob(): rationalize int types

Change-Id: Ic34dee1dc707d9faf6a3ae250bfe39b60bef3438
2017-03-01 00:56:37 +00:00
Fergus Simpson 073c6f3377 handle_inter_mode: add arguments struct
Adds the arguments struct HandleInterModeArgs to hold arguments that
are conditional on compiled features. This means that there are no
longer #if's in the function's argument list.

Some of the array pointers that were optional arguments have been
made array members in the new struct, but not all. This is due to the
function being called with either references to arrays that are
maintained between trying different modes OR with references to
"dummy" arrays initialized to zero. The arrays that are always used
are now members of the HandleInterModeArgs struct.

Change-Id: I3076fd53c3cddf5a6d14bbe7d23a889465ed716d
2017-03-01 00:51:14 +00:00
James Zern 15c27e0b82 codereview.settings: update gerrit info
+ disable squashing of commits

Change-Id: If70d57a8bc71159b633a66bb18910d3425f668ff
2017-03-01 00:46:10 +00:00
Yaowu Xu 1772cf552d Remove an unused declaration
Change-Id: I10cb9af13d50f2e5ac471af86a4393739c28b509
2017-03-01 00:27:27 +00:00
Jingning Han dddb21f9ed Fix compiling warnings in var-tx and coef-interleave
Resolve compiler warnings when the two experiments are turned on.

Change-Id: I568ddd74afad6fe720e1f46d0119df08fd2f689b
2017-03-01 00:02:14 +00:00
Angie Chiang e4f98f67a5 Turn on SIMD implementation of av1_fht32x32
Change-Id: Ie1bfece43c81ee5d149ed25c3f7fd959a8f95030
2017-02-28 23:57:30 +00:00
Michael Bebenita 3a88de8f82 Add SIMD code for PVQ search
This reduces the runtime profile of pvq_search_rdo_double from 37%
to 15% and improves overall encoding speed when PVQ is enabled by ~40%.
The SIMD code is not bit accurate with the C version and introduces a
slight PSNR regression on AWCY:

  PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000
0.0607 |  0.1044 |     N/A |   0.0126 |  N/A | -0.0309 |        N/A

Change-Id: Ie22cebc62df2e72618305f2268668d79167860c6
2017-02-28 19:39:01 +00:00
Angie Chiang 47c7218942 Add av1_cost_coeffs_txb() for lv_map experiment
Change-Id: I44842387207b19f8e0c3894d3f4e8d0646a4cafd
2017-02-28 18:34:32 +00:00
Alex Converse bff32ac056 Simplify rabs_read()
This is branchless on newer gcc and clang and is about 1% faster overall
at cq-level=16 frame-parallel=1.

Change-Id: I7f5608ab0f0abbc29aa3419a103addf945ea9f0a
2017-02-28 16:55:04 +00:00
Urvang Joshi 3e42acd460 SMOOTH_PRED: Use 8-bit weights.
Using 8-bit weights gives similar results as 12-bit, with only noise
level difference. Here's what 8-bit looks like compared to 12-bit:

* AWCY Objective-1-fast:
                          high latency          low latency
ALL keyframes             0.00                  0.01
Video                     0.00                  0.04

* Google sets:

All Keyframes:
lowres: 0
midres: -0.001
hdres: -0.001

Video overall:
lowres: 0
midres: -0.063
hdres: 0.026

Change-Id: Ibed6015aa7cce12fcc6f314ffde76624df4ad2a1
2017-02-28 16:39:58 +00:00
Debargha Mukherjee 246d27371d Assign offsets correctly to compute warped motion
Offsets for the least-squares for affine motion computation
are now set at the top left corner of the current block.

Improves stability and performance a little.

Change-Id: I68ca7e74c6102502daa8ca3373af2b2dd59400c3
2017-02-28 15:43:48 +00:00
Jingning Han c41a549a01 Disable compound mode in sub8x8 coding blocks
Disable the support of compound prediction modes for sub8x8 codking
blocks. Make the rate-distortion optimizations process account for
such constraints.

With the use 2x2 chroma prediction block, this makes the wrost case
number of inter predictors same as vp9. It affects the coding
gains by 0.35% for lowres, 0.17% for midres, and 0.08% for hdres.

The encoding speed is up by 10%.

Change-Id: Ieb2a83030676911baa403e586f1f800cbf485d81
2017-02-28 07:04:12 +00:00
Yaowu Xu 1e2aae1ae7 Use correct segment
Segmment based lossless flag is used in select transform size, this
commit fixes a bug where wrong segment_id is used in such selection.

BUG=aomedia:350

Change-Id: Ibc981c779739849bac00447155180abbd319eb28
2017-02-27 16:59:28 -08:00
Yaowu Xu cdf8a14e85 Move asserts into correct scope
The macro used in assert is defined under CONFIG_VAR_TX. This fixes a
build issuse when --enable-var-tx and --enable-rd-debug are both on.

Change-Id: I497fe4a8b1fa6c7b05ac2b41c97522f7bdedc0ce
2017-02-28 00:52:35 +00:00
Angie Chiang 44701f2cff Remove redundant return in set_offsets
Change-Id: Idf8f03052a7e21b8a273986204038545573d7962
2017-02-27 14:36:02 -08:00
Debargha Mukherjee f6dd3c6827 Better block center in gm_get_motion_vector fn
Also supports homography models for future experiments.

Change-Id: I4510540f54133e063891ed491c95c087222f7810
2017-02-27 21:57:19 +00:00
Adrian Grange d152fc044b Remove unnecessary #ifdef
The line of code is already within the scope
of an #if CONFIG_EC_MULTISYMBOL.

Change-Id: I62e28c8586f5d04a1e1be4ea5a2551d3123fde9f
2017-02-27 20:52:08 +00:00
Debargha Mukherjee 094c9439d9 Adds macro to test cb4x4 w/o sub8x8 txtype search
USE_TXTYPE_SEARCH_FOR_SUB8X8_IN_CB4X4 macro added to turn
tx_type search on/off for sub8x8 in cb4x4 mode.

The purpose is mainly to analyze the coding gains from cb4x4
but this later can be made into a speed feature as well.

Change-Id: Ic22026c373eebba87f324689ac5686a2844315b6
2017-02-27 20:50:13 +00:00
Debargha Mukherjee e6eb3b53c3 Integerize warped motion computation
Integerizes computation of the least squares for warped motion.
The model is restricted to only Affine. Affine seems easiest
to compute and integerize since it can be split into two 3-dim
least squares problems, as opposed to rotation-zoom which needs
a 4-dim least-squares problem to be solved.
The current implementation requires only one division per block.

BDRATE impact is mminimal. The upgrade to the affine model improves
coding efficiency but integerization also degrades efficiency a
little. Overall there is a net gain of about -0.07% BDRATE on
the lowres set.
BDRATE lowres: -1.113% with ----enable-warped-motion vs. without
(up from -1.044%).

Change-Id: I6b9216ac0737d76f59054293eabee48e17739ec4
2017-02-27 20:49:42 +00:00
Tom Finegan 4db04d3678 Move cmake build setup for testing into test/test.cmake.
- Move source list vars.
- Split source list vars into common/decoder/encoder sources.
- Move target definitions into function.
- Split targets into common/decoder/encoder targets.
- Update CMakeLists.txt to include test.cmake and call
  setup_aom_test_targets() at the appropriate time.

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

Change-Id: Icd9ce67593c2de7ebd5c8ef921e31517b6d20945
2017-02-27 12:06:40 -08:00
Yaowu Xu 7640f5f396 Remove const from int ext_tx_set
The variable was later assigned value in the function.

Change-Id: I93f283a134499a050b46d9dcd6f0c0b4e8d54049
2017-02-27 18:39:32 +00:00
Angie Chiang 7fcfee4080 Prefer using get_tx_size()
Change-Id: Ifcdd3ce2953c1ecb1d0962da412a4b5ba2cda912
2017-02-27 18:19:41 +00:00
Yaowu Xu 345a22db54 Correct a macro
--enable-lowbitdepth defines the flag CONFIG_LOWBITDEPTH, not
CONFIG_AOM_LOWBITDEPTH.

Change-Id: Ifa1c12847bee4978d08d010f4fc3601d75e59c31
2017-02-27 18:07:57 +00:00
Sebastien Alaiwan 58f801755e Remove dead option from configure script.
Change-Id: I93bfff59810fe2d8e880012de02921ae857f300b
2017-02-27 17:16:10 +00:00
Alex Converse 7f094f10aa Remove aom_realloc()
It only handles the realloc constraint (preserving low elements) by
serendipity, and we don't actually rely on that behavior anyway.
Meanwhile the calls may do extra copying that gets immediately clobbered
by the callers.

Cherry-pick from libvpx:
3063c3760 Remove vpx_realloc()

Change-Id: I8dfa89e4a81084b084889c27bd272fdf85184e8d
2017-02-27 16:59:25 +00:00
Alex Converse 232e38475c loop_restoration: Cleanup allocations
Change-Id: Id3824c09cbaae814df1d8fb029215f28e8c7a6b1
2017-02-27 16:59:25 +00:00
Steinar Midtskogen 4305e6be8e CLPF: Add quality dependent damping in the constrain function
PSNR YCbCr:  -0.17%     -0.03%     -0.40%
APSNR YCbCr: -0.17%     -0.02%     -0.39%
PSNRHVS:     -0.06%
SSIM:        -0.17%
MSSSIM:      -0.07%
CIEDE2000:   -0.12%

Change-Id: I69a4b6a4e18c22c3930069396540a6fee45cb30d
2017-02-27 08:06:02 +00:00
James Zern ee4b3a80db blockd,decodeframe.c: remove unused tu_num_y var
Change-Id: Idd4a7ff49c594e8d1c7cb057967fe7bf75770dfb
2017-02-25 16:10:28 +00:00
James Zern 4ef9a13020 entropy.c,build_head_cdfs: remove dead store
Change-Id: Ie27b46248a3555c1182a97592d7aa7209acfae3c
2017-02-25 16:07:46 +00:00
zhipin deng eb019b877c add --enable-mv-compress to reduce the storage of temporal mv candidate
Change-Id: I5a2469d10f7295f1b8a6bea64e36b8325c8dca22
2017-02-25 20:35:04 +08:00
Timothy B. Terriberry 4e6a8f301d Fix signed left-shifts added in e93acb2d22.
Since we now require C99, this is undefined behavior.
Thanks to Luc Trudeau for the report and Alex Converse for the
suggestion on how to make the macro safe for all integer sizes.

Change-Id: I99a1342dfedb3e17a6869269be317c2ed26bfe9b
2017-02-25 03:45:27 +00:00
Angie Chiang cea11f2aee Add transform coefficient decode function
Change-Id: I222b5ce9ee1a1c1aac5620b94835967dd9a014c1
2017-02-25 01:05:48 +00:00
Jingning Han 8cf83640eb Use bottom and right blocks' mv for referencing
This commit enables the motion vector referencing system to use
the motion information of blocks to the bottom and right of the
collocated block. This improves the compression performance by
0.3% for lowres, midres, and hdres sets.

Change-Id: I03b3fb21f3a8698880ca9ceb945fa3e32531acdb
2017-02-25 00:47:30 +00:00
Jingning Han 6683a21368 Add tpl_mv experiment flag
Add temporal motion vector referencing experiment flag.

Change-Id: I9a0fced67f4f94071bd6a38eacf9e4f311099c79
2017-02-25 00:47:30 +00:00
James Zern 751f26a4f9 aom_dsp/get_prob: relocate den == 0 test
to get_binary_prob(). the only other caller mode_mv_merge_probs() does
its own test on 0.

cherry-picked from libvpx:
93c823e24 vpx_dsp/get_prob: relocate den == 0 test

Change-Id: Ie0604ad405a97ed754e4b88c6d580eb4894ea0f6
2017-02-24 23:43:30 +00:00
James Zern 563101967a aom_dsp/get_prob: make clip_prob branchless
+ inline the function directly as there was only one consumer
(get_prob())

this is an attempt to reduce the amount of branches to workaround an amd
bug. this change is mildly faster or neutral across x86-64, arm.

http://support.amd.com/TechDocs/44739_12h_Rev_Gd.pdf
665 Integer Divide Instruction May Cause Unpredictable Behavior

cherry-picked from libvpx:
7481edb33 vpx_dsp/get_prob: make clip_prob branchless

Change-Id: I433059c61ce43ec5058cc16ca590d186bfa8aab5
2017-02-24 23:43:30 +00:00
Alex Converse 19d78227d3 Resolve -Wshorten-64-to-32 warnings in prob.h.
cherry-picked from libvpx:
d089ac4dd Resolve -Wshorten-64-to-32 warnings in prob.h.

Change-Id: Ib8ace4d969daf7af915aba89393d5d7740f6e373
2017-02-24 23:43:30 +00:00
Angie Chiang 80b82269d0 Add lv_map transform coefficient coding function
Change-Id: I70c3659940b5090f030c795df5148ac508e19d2d
2017-02-24 23:20:46 +00:00
Angie Chiang 971a596387 Add txb_common.h
This file includes common context generating functions of lv_map.

Change-Id: I7aea78e48cd5003738445b5635120cbc3825ef05
2017-02-24 23:20:46 +00:00
Angie Chiang bd57fc5542 Add probability/count tables for lv_map experiment
Change-Id: Ie73bb51d4a24c2ff719758c38e303db92e6f4500
2017-02-24 23:20:46 +00:00
Tom Finegan 1d848474ff Make updates to aom app targets in cmake additive.
Don't smash the value when assigning in CMakeLists.txt in
case the list needs an update from elsewhere in the build.

Change-Id: Icf1720f6bb4508e6a557c16dc229170f82d740b9
2017-02-24 14:22:00 -08:00
Luc Trudeau 98bc74ca5f Remove redundant loop in ctx_reset
Merges two consecutive loops that iterated over TX_SIZES. There's no
impact to the bitstream. The 4 used as the termination threshold in the
second loop is equivalent to TX_SIZES.

Change-Id: Ic891d209b28f20907d53bcdd58139fe39c37b0fa
2017-02-24 20:55:39 +00:00