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

20318 Коммитов

Автор SHA1 Сообщение Дата
Sarah Parker 81915f5d5a Enable rect-tx by default
Change-Id: I51f31083988d7d5c574067c1a3aa98b7949adcee
2017-03-15 17:39:56 +00:00
Sarah Parker 076437f4a0 Fix broken assert when rect-tx is enabled on its own
The function is_rect_tx previously was only defined when
both ext-tx and rect-tx are enabled together. This function
needs to be defined when rect-tx is enabled alone to fix
failing asserts.

Change-Id: Ic8153a55b768cb49caac07d6aeaee109d63410a9
2017-03-15 17:39:41 +00:00
Fergus Simpson 6ee201dbc1 frame_superres: Add experimental flag
Frame Super-Resolution is an experiment currently under development.
This commit just adds an experimental flag for it.

The goal of the experiment is to compress a downsampled version of a
frame instead of the full resolution one when bandwidth is limited. The
decoder will need to upsample and filter the frame it recieves after
decoding. It is thought that this will result in a visually superior
result in low bandwidth scenarios.

Change-Id: Ia8af8692cffd133db3838693fd85ded2442b078c
2017-03-15 16:55:45 +00:00
Thomas Davies 04bdd523f6 NEW_TOKENSET: do not code impossible values.
In the last position, No-EOB values and zero are all not
possible.

AWCY, objective-1-fast: -0.08% all metrics
AWCY, screen content:

PSNR YCbCr:    -0.42%    -0.42%    -0.43%
PSNRHVS:       -0.40%
SSIM:          -0.41%
MSSSIM:        -0.41%
CIEDE2000:     -0.42%

Change-Id: Iad012abfd2a48a2c9ff27512f92b27235a5a8a4a
2017-03-15 09:33:04 +00:00
Thomas Davies 1052575881 NEW_TOKENSET: improve RDO.
Modify av1_coef_cost to reflect that EOB values are sent
with each non-zero coefficient, and modify chroma weight
to preserve original chroma balance.

AWCY, objective-1-fast, new_token+ec_adapt vs ec_multisymbol:

PSNR YCbCr:     -0.43%      -0.52%      -0.58%
PSNRHVS:        -0.81%
SSIM:           -0.73%
MSSSIM:         -0.93%
CIEDE2000:      -0.36%

This change:

PSNR YCbCr:     -0.15%      0.83%      0.77%
PSNRHVS:        -0.24%
SSIM:           -0.23%
MSSSIM:         -0.24%
CIEDE2000:       0.24%

Change-Id: I7f2dd9f3cd24bb64eb4131cba94dda466b9691b0
2017-03-15 09:32:45 +00:00
Thomas Davies 028b57f563 EC_ADAPT: Perform backwards updates directly on CDFs.
The initial CDF for each frame is stored in
the frame context. CDFs for actual coding are
stored in the tile structures, and these are
what get adapted. The initial CDF is replaced
by an average CDF derived from these tile CDFs.
This is carried forward to future frames when
backward adaptation is on.

CDFs are no longer set from the 8 bit probabilities
in backwards adaptation.

For now, 8 bit probabilities are maintained for
use in the encoder and for symbols which do not
have a CDF.

Change-Id: I106b30510bfad1fa57d077f7702acc1864378a09
2017-03-15 09:31:58 +00:00
Yushin Cho d080f4152d Fix broken build with accounting
Change-Id: I50267aa39d4d2857b48cbea0cbc8a7608489ebd7
2017-03-14 22:04:46 +00:00
Sarah Parker b3ebed1cae Fix sub8x8 rd costing to include global motion prediction
One codepath originally skipped a function which forks between
gm prediction and regular inter prediction. This change fixes this
for both high bit depth and regular bit depth.

Change-Id: I741d67a7c89eb6eb0cd35c02219739dc3ddb3841
2017-03-14 21:42:13 +00:00
Timothy B. Terriberry 561eb7cdc6 daala_ec: Remove dead code.
Change-Id: Ief9581c8060132f20ca81f4c1be15e2772b6c9eb
2017-03-14 18:36:14 +00:00
Luc Trudeau b6e94d9f4b Uniform way of accessing mbmi in av1_xform_quant
Cosmetic change that moves the declaration of mbmi at the beginning of
the function.

Change-Id: I028c9ca3db57e769270fbad4f20261d5562be2f2
2017-03-14 17:34:12 +00:00
Sebastien Alaiwan 1f40e2212c Reduce scope of local variable
Change-Id: Ib87563cc84812137070534b76f18305c243e2fad
2017-03-14 08:34:39 +00:00
Sebastien Alaiwan 7889e5fa28 Don't indent the 'normal' case
This simplifies the flow of control.

Change-Id: Ib376d28711c98fb776cb5afe097107e9ccf039b1
2017-03-14 08:34:39 +00:00
Sebastien Alaiwan 13f77be5e9 Group TX by sizes
Avoid having NULL entries when TX64x64 isn't enabled.

Change-Id: I58843d8652b78434b604e23f4b131ef02fb4c68b
2017-03-14 08:34:39 +00:00
Debargha Mukherjee 1b3dbf0964 Add a macro to use only Wiener loop-restoration
For testing contribution from Wiener only.

Change-Id: I54fb5051dd03543d5166391a9b3b60b8d80c8228
2017-03-14 00:46:39 +00:00
Yaowu Xu 93d44fb366 Reduce size in FrameSizeTests for 32-bit arch
BUG=aomedia:394

Change-Id: I7d9e413dcd0fe832aaec570bc6c1f0d2b644de09
2017-03-13 20:44:18 +00:00
Urvang Joshi 63234547dd Add some default CDFs when ALT_INTRA is on.
Generated using av1_tree_to_cdf().

Note: These are currently overwritten by CDFs generated from default
probability tables. But they will be used eventually when we remove the
default probability tables.

Change-Id: I41a6047fd13e05156a50b2d54349ffdd7e1e4c4a
2017-03-13 18:28:17 +00:00
Angie Chiang d0916d9f98 Add aom_merge_corrupted_flag to simplify debugging
This function allows us to set breakpoint when error happens.

Change-Id: I0074a26142625fb95728ed6aa003453ab4203c0f
2017-03-13 17:20:46 +00:00
Angie Chiang b11aedf988 Fix bitstream debug failure
Move bitstream_queue_reset_write() out of experimental flag

Change-Id: I622e9c3e8d5b668e68c53c2a0484173e7a65c808
2017-03-13 17:20:46 +00:00
Sebastien Alaiwan 1e6f24d2b0 Simplify test: avoid dynamic memory allocation
Change-Id: I494aff37afa176faa7bbef39552d4bb237a685ae
2017-03-13 08:15:39 +00:00
Sebastien Alaiwan 1bc3046d95 Simplify list of functions to test
Change-Id: Id4eeefe769351414abae6e3ddda56a2f9f0c3eda
2017-03-13 08:15:21 +00:00
Yaowu Xu def28b245a Remove a sse4_1 function
Function apply_selfguided_restoration_highbd_sse4_1() is producing
mismatch to c version, it is removed for now, allowing investigation
and fix.

BUG=aomedia:392

Change-Id: Ic55e7a6958112c02930b1d5f3af2e2ea089fe500
2017-03-13 04:41:05 +00:00
Debargha Mukherjee 9d5d4ef173 Fix a bug in encoding the restoration tilesize.
Change-Id: I841098396e4932913e41cfc729ef2ee3b7444477
2017-03-13 03:52:13 +00:00
Yaowu Xu c3f5bd1cfc Align memory allocation for SIMD operations
Change-Id: I035d4a3b14e6c56a55b06dea57b4a49cd161e69f
2017-03-13 02:19:46 +00:00
James Zern 66ee4402d0 aom_encoder: enable floating point exceptions
with --enable-debug (CONFIG_DEBUG) when available

BUG=aomedia:388

Change-Id: I5dd0718d6bd0ba17bc1b52d5842e250244d2d1d8
2017-03-11 14:52:22 -08:00
James Zern 4ab325c32d Revert "aom_encoder: enable floating point exceptions"
This reverts commit 48c10c7d91.

Reason for revert: this incorrectly detects feenableexcept for
i686-w64-mingw32 (at least), causing the link to fail

BUG=aomedia:388

Change-Id: I141fec2285bd67d1312f1eb6be528cc69108cd27
2017-03-11 22:12:40 +00:00
Yaowu Xu 57b700a154 change to 32bit read from 64bit read
This is to avoid out-of-range memory access.

BUG=aomedia:391

Change-Id: I211ba1992d4f51fcf06cf2961d8cb2606b836207
2017-03-11 12:17:46 -08:00
James Zern 48c10c7d91 aom_encoder: enable floating point exceptions
with --enable-debug (CONFIG_DEBUG) when available

BUG=aomedia:388

Change-Id: I3b67aedc519043e3215b4ee41503b34297aa32ce
2017-03-11 02:03:19 +00:00
James Zern d2c42f0354 av1_rc_update_rate_correction_factors: avoid log(0)
avoids a floating point error being generated. this doesn't change
behavior, the -HUGE_VAL return was being ignored due to the min()

BUG=aomedia:388

Change-Id: I698aab248c777b02b60081bb7619e0aa6f3a0ba2
2017-03-11 02:03:19 +00:00
Fergus Simpson 9f7ca0b73c handle_inter_mode: rename opt_args to args
The addition of a 2D array to the HandleInterModeArgs struct means there
is now a non-optional member in the opt_args struct passed to
handle_inter_mode and its child functions. Since opt_args no longer
consists solely of optional members I've renamed it args.

Change-Id: I7f3b22188777d8fdac2c244746638c34b5d8636c
2017-03-11 01:50:58 +00:00
Urvang Joshi 3260480bd9 Update golden MD5 in decode_to_md5 test.
The bitstream has now changed as we enabled ALT_INTRA by default now, so
need to update the golden MD5.

BUG=aomedia:389

Change-Id: Ic62d1628e572e5ea252d6f6eef8d8312db62dbb8
2017-03-11 00:49:26 +00:00
Urvang Joshi 3a9a527819 Correction for ALT_INTRA + EXT_TX combo.
Add extra entries to the 'default_intra_ext_tx_prob' table when
ALT_INTRA is on.

Change-Id: I1b3d28fa06852b4b7c68b061c44318ec83be77b6
2017-03-11 00:39:18 +00:00
Fergus Simpson 3424c2de01 rdopt: move/remove 2d arrays in pick_inter_mode_sb
Two 2D arrays were passed to HandleInterMode and not used elsewhere.

One has been added to the HandleInterModeArgs struct to
simplify handle_inter_mode's signature and the the calling function.

The other has been unread since commit
beacb3ff79. That patch removed the
"skip_txfm optimization" but left the single_skippable array in place,
even though it was no longer read. Since the array's only usage has been
removed, this patch removes the variable outright.

Change-Id: I6e680a9ddc6f67961153819a62009751252757a8
2017-03-10 23:19:54 +00:00
David Barker eed824efd7 Vectorize new highpass filter for loop-restoration
Change-Id: Ibe5d4933f599456cb496f636de244694bc786a4c
2017-03-10 23:13:49 +00:00
Thomas Davies f7f87ff2e6 Add a symbol decode call count to accounting.
This keeps track of how many calls have been made
to read symbols or bits. A given syntax element
may make multiple calls to symbol decoding functions,
and these variables keep track of the entropy
decoding engine throughput.

Change-Id: Iab3a720cbfe68f8d5ca3e4c415f7baa683b24268
2017-03-10 20:09:01 +00:00
Debargha Mukherjee b7bb0976b7 Replace one self guided filter with highpass
Adds an option controlled by a macro to replace one of
the guided filters in the self-guided tool with a simple
bandpass filtered version generated with a 3x3 kernel.
By default the macro USE_HIGHPASS_IN_SGRPROJ is 0 (turned
off), that defaults us to the dual self-guided filter.
When the macro is turned on, the larger radius guided
filter is replaced by a simpler filter that is much faster.

Results (if USE_HIGHPASS_IN_SGRPROJ is on vs. off):
lowres: performance drop by +0.14% (BDRATE)
midres: performance drop by +0.27% (BDRATE)

Further experiments on this variation of guided filters is
pending.

Change-Id: I7bbcfcad7ee266cd49a8dc6d96795a454feb1a94
2017-03-10 19:31:12 +00:00
Yaowu Xu bcf25cda91 Align a buffer for simd operation
BUG=aomedia:387

Change-Id: I11fdc9dbc4b0f4484e82ab1662ac329b8b7f2d6c
2017-03-10 19:06:45 +00:00
James Zern fb8fc2bd25 README: add detail for running tests in parallel
Change-Id: If5300ead54effe2977f1cdbbea82d396ff58abbf
2017-03-10 18:49:42 +00:00
Ryan Lei 41fc0c66ca add 15 tap filter in the parallel_deblocking experiment
this change added back the original 15 tap filter from VP9 back into
the parallel_deblocking experiment. when transform size of both blocks
along the edge is greater than 16x16, 15 tap filter is used.

Change-Id: Ieae0393b66b1168572292bcebabd2707058b7f1d
2017-03-10 17:22:29 +00:00
David Barker bcc5535110 Fix self-guided filter tests
Patch https://aomedia-review.googlesource.com/c/8387/ introduced
some bugs into the self-guided filter correctness test. One bug
was fixed in https://aomedia-review.googlesource.com/c/8445/ ,
but another surfaced while developing
https://aomedia-review.googlesource.com/c/8480/

This patch tidies up the relevant code to make it clearer,
and should fix the remaining bug(s).

Change-Id: I7a5957b02f0ad309aa4081c72d490d7369c8d90a
2017-03-10 16:41:37 +00:00
Tom Finegan 443e6aeb69 Support the analyzer on all targets.
Move the analyzer setup to process_toolchain() in configure to
ensure the {CXX,LD}FLAGS are picked up for all targets.

Change-Id: I037f52406c19a42ddd848adad2f43d3a49b00ded
2017-03-10 16:32:20 +00:00
Tom Finegan 67b5a30ddd Support CONFIG_ANALYZER in the cmake build.
- Use the FindwxWidgets (the cmake module) to detect library
  flags and handle include paths.
- Update target to link in the libs located by FindwxWidgets.
- Enable CONFIG_INSPECTION and warn at generation time when it's
  not present and CONFIG_ANALYZER is enabled.

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

Change-Id: Ica949107d199af9d8241ca639cc27753d4a30dfc
2017-03-10 16:29:16 +00:00
Sebastien Alaiwan 5443ff3a60 Use correct format specifier for 64-bit integers.
Change-Id: I366160220b5f7fe4ea6adb4719c4efeef6a7d6f7
2017-03-10 08:11:36 +00:00
Sebastien Alaiwan d16a83657e Rename a macro
Change-Id: I4d6db116692b9a236ae8555e4d4e5d0c403f6c13
2017-03-10 08:11:17 +00:00
Urvang Joshi 4487747736 [Reland] Enable ALT_INTRA experiment by default.
This tool was adopted in the AOM codec WG call on 03/03/2017.

Resubmitting, now that the log2() use has been removed:
https://aomedia-review.googlesource.com/#/c/8463/

Change-Id: Iec4cff00ea901ab3ed6ed703599ef41c3f860ca1
2017-03-10 01:19:54 +00:00
Luc Trudeau 3e32f1ab33 Uniform way of accessing mbmi in write_tokens_b
Cosmetic change that moves the declaration of mbmi at the beginning of
the function. This simplifies access and removes the need for
(void)mbmi.

Change-Id: Id0f7e1113696200ae6fb98bcc639d1cbdba05a9e
2017-03-10 01:15:47 +00:00
Urvang Joshi ee7ee7f49f SMOOTH_PRED: Use get_msb() to get log2 of block dimension.
Apart from being inefficient, the floating point operation log2()
was resulting in an assertion failure due to an unrelated floating
point exception that happens earlier.

Related: update the MD5s in test_intra_pred_speed to fix that failure
too.

BUG=aomedia:384

Change-Id: I18dc0733e880bac21b3d07ad874f8ae341f59f06
2017-03-10 00:26:58 +00:00
Tom Finegan 047db3883f Fix CONFIG_INSPECTION propagation in the cmake build.
- Default was missing.
- Was omitted from aom_config.{asm,h}.
- Was omitted from RTCD templates.

Change-Id: I8e0514bec657ca30e4225e16c6915e38344fed04
2017-03-09 21:57:28 +00:00
Nathan E. Egge 2693ca5283 Add frame inspection data to the analyzer.
Change-Id: I753b51a1ae9759086198c7433410717296f61c20
2017-03-09 21:57:05 +00:00
David Barker 4d2af5db6c Add SSE4.1 highbitdepth self-guided filter
Performance is very similar to the lowbd path (only 4-5% slower)

Change-Id: Ifdb272c3f6c0e6f41e7046cc49497c72b5a796d9
2017-03-09 21:15:45 +00:00
Tom Finegan 0a4bc8d39c Remove the av1_postproc flag.
It was touched only in configure, and then only for dist dir naming.
No source level changes.

Change-Id: I5b6134ad800c74d0f022441553da99ab97311b79
2017-03-09 20:52:55 +00:00