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

20318 Коммитов

Автор SHA1 Сообщение Дата
Tom Finegan 48d1ed81ce Add basic arm64 linux support to the cmake build.
Requires new cmake toolchain file arm64-linux-gcc.cmake:
$ cmake path/to/aom
-DCMAKE_TOOLCHAIN_FILE=path/to/aom/build/cmake/toolchains/arm64-linux-gcc.cmake

Above requires aarch64-linux-gnu-gcc toolchain is installed and its
bin dir added to PATH.

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

Change-Id: I6c7e297a67415008583b7ac2cd8aea528787e6d0
2017-03-29 21:30:01 +00:00
Tom Finegan f47266d965 Add basic armv7 linux support to the cmake build.
Requires new cmake toolchain file  armv7-linux-gcc.cmake:
$ cmake path/to/aom -DCMAKE_TOOLCHAIN_FILE=path/to/aom/build/cmake/toolchains/armv7-linux-gcc.cmake

Above requires arm-linux-gnueabihf-gcc toolchain is installed and its
bin dir added to PATH.

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

Change-Id: Id2d0022fd5b4615fef7ea0ef38980cbdfd957c0e
2017-03-29 20:10:44 +00:00
Luc Trudeau c538d6815e [PVQ] Don't transform if block skipped
The forward transforms required for PVQ are only performed if the block
is not skipped.

Change-Id: I22de3c7855ed800578a60aa06992cebea8bda119
2017-03-29 18:20:28 +00:00
Steinar Midtskogen b8e6f2ce66 Add unit tests for vertically restricted CLPF
Change-Id: I99bb8a849a632334359441f43705e93f8455f4cb
2017-03-29 17:53:04 +00:00
Steinar Midtskogen 73aa77c034 Increase parallelism in CLPF SIMD
Change-Id: I66cdb67f8a1c2072516a65822dcc838e516ba9d7
2017-03-29 17:53:04 +00:00
Yaowu Xu 099220bc8a Fix a buffer over-read
Change in this commit is suggesed by Tim Terriberry.

BUG=aomedia:413

Change-Id: I4f79fd30d65d984ea4a1fe069bb715937856721f
2017-03-29 16:27:48 +00:00
Steinar Midtskogen a04cd932d8 Fix spelling error in the ISA extension prefix
Change-Id: I219a0ca3af7a0f6b03391ce500ea097e6106d06e
2017-03-29 09:08:58 +00:00
Debargha Mukherjee 265db6d0a1 Improves/refactors rd costing for global motion
Improves and simplifies costing for global motion to use the
actual bits used to communicate the global motion parameters.
Removes some of the old hacks.
This patch also includes necessary refactoring to incorporate
reference based coding of the motion parameters to follow.

lowres results: -1.489% (up from -1.333%)

Change-Id: I994dc97046011de4261633ccb0c9d71e374f2c5a
2017-03-29 05:40:21 +00:00
Jingning Han b06af20759 Make cdef block offset scalable with mode_info size
Properly map the mode_info offset to pixel offset in cdef to
support cb4x4 mode.

Change-Id: I1f876387cb327cbf6c5689a4bc5ac41a1b1b0f34
2017-03-28 20:57:50 -07:00
Jingning Han c86e7aa0d4 Use explicit block size to determine function calls in cdef
Explicitly use block size to decide between functions for 4x4 and
8x8 blocks.

Change-Id: I0248b42a5b97441261a6331ec00dbd60610c79c8
2017-03-28 20:57:50 -07:00
Jingning Han d35b581ee3 Use mi_size to support variable mode_info size in cdef
Replace the hard coded numbers with mi_size definitions. This
would support scaling the mode information size. No coding stats
are changed.

Change-Id: I4bd63ad0b254a1c198258e7bc68e610067c982c4
2017-03-29 03:26:11 +00:00
Tom Finegan 5e9d15f34a aom_dsp: Fix cmake build.
Add missing sources:
- binary_codes_{reader,writer}.{c,h}

Change-Id: I4eda322a4c07a61f9da7370fda3163f726ab531c
2017-03-28 23:33:53 +00:00
Tom Finegan 0c0ab99179 Add iOS simulator toolchains for cmake build.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76

Change-Id: Ia3f09540787b90688656ffe23ec455379102c7fc
2017-03-28 23:33:50 +00:00
Joe Young 1bf75bca79 Fix compile error if ref_mv is disabled.
Change-Id: I2290eea6dc0b57f8bd3416ceae52ed75c24dd6ab
2017-03-28 20:25:06 +00:00
Sarah Parker 86437eff6d Add testing for subsampling in warping function
Change-Id: Ia5b2c851d43e889b753933590f36dae61cf236d8
2017-03-28 18:52:00 +00:00
Jingning Han 31d044d3c2 Refactor pick cdef to support cb4x4
Replace hard coded numbers to support the 4x4 coding block
structure.

Change-Id: I3602e09c8cfae9765069848828b534d177a75774
2017-03-28 17:57:54 +00:00
Yaowu Xu 481af67044 fix calls to av1_tx_block_rd_b()
Fix the calls to be compatible with the new interface introduced in a
previous commit#77368af.

Change-Id: I6944c189d2d53978250df9dee460a2ba9b8ccc83
2017-03-28 17:48:00 +00:00
hui su f11fb88269 Add av1_ prefix to fwd_txfm()
Change-Id: Ie18fd2b8a3caf3948748ee353fe41e37f5803ba3
2017-03-28 16:55:47 +00:00
Steinar Midtskogen 233ef94776 Move dering strength mapping to od_dering()
This patch also makes it easier to tune the mapping later.

Change-Id: I69f49b9dd1fddb306931599a354526abe0232eb8
2017-03-28 16:53:05 +00:00
Alex Converse f47f6ff7fe Flip binary_codes_test off when ANS is turned on.
Fixes the nightly tests.

Change-Id: Ifbd83f452337c80914b359a4e3e78b00a159146c
2017-03-28 16:43:34 +00:00
Alex Converse ffabff3535 ext_partition_types: Uncopy-paste update_ext_partition_context
Change-Id: I8cd35f4697bc5ee90cfcb1fd37042770d6b5a544
2017-03-28 16:43:21 +00:00
Thomas Davies 9b8393fdd7 NEW_MULTISYMBOL: Code extra_bits using multi-symbols.
Code the extra_bits using up to 5 non-adaptive symbols,
starting from the LSB. The number of skipped bits is
truncated to fit into the multi-symbol groups.

Change-Id: I147b5b0c3815bd39c338ee9a4779638ae75d7ab5
2017-03-28 14:03:25 +00:00
Steinar Midtskogen 302d2c189f Let od_dering() handle 16 to 8 bit conversion
Change-Id: Ief5df3d5b1b81f09190d34022a3cb7d500992da2
2017-03-28 11:56:14 +00:00
Jingning Han 5fe79db38b Refactor read_partition()
Replace multiple calls for partition_cdf with a unified variable
in ec-multisymbol. This siliences a compiler warning in the
ec-multisymbol.

Change-Id: I56b07579e89e8fba565c4960d081817c86bc0097
2017-03-28 02:58:08 +00:00
Jingning Han cd95976b7a Explicitly use block size to determine partition info
Replace the use of num_4x4_log2 with the actual block size as the
condition to check if a block is partitionable. This avoids conflict
issues when multiple experiments are turned on.

Change-Id: I666d52458590a6f88c3995a140d20b0d66d27bfb
2017-03-28 02:57:46 +00:00
Fergus Simpson e75084134b frame_superres: Add scale to uncompressed header
A bit and a three bit literal have been added to the uncompressed frame
header for use by the frame superres experiment.

The bit is true if scaling is to be used, and is immediately followed by
a three bit literal that encodes the scale to use. If the first bit is
false, scaling is disabled and the scale factor numerator is set to the
denominator (ie. 1:1 scaling). No literal follows if scaling is
disabled.

The denominator has been defined as a constant 16. The literal is biased
by a defined constant of 8 - allowing fractions from 1/2 to 15/16
scaling in steps of 1/16 when scaling is used. Experimentation will be
needed to discover which of these are useful.

The bit and literal are immediately after the optional render_width and
render_height, so that the superres parameters can be written and read
just after the regular width and height, without interfering with the
render_size parameters.

This patch also adds an arbitrary write to make the scale 1:1, so as to
not trigger any scaling until it's ready.

Accompanying encode and decode helper functions are added.

Change-Id: I8caa6247c73f5c7f84ef1fde1e80eb9b20bde0e3
2017-03-28 01:00:16 +00:00
Jean-Marc Valin b37226e4de Don't run cdef when cm->mi_grid_visible[]==NULL
Change-Id: Id2bcdad731c27a71cca29205d37c781a3f99bb3d
2017-03-27 23:27:58 +00:00
Jingning Han afeb9219d4 Fix compiler warnings in av1_loopfilter
Change-Id: Ieec83d0b067ec36c35878aee02eeba436ede14a5
2017-03-27 22:12:17 +00:00
hui su ff5e2098d9 rect-tx/ext-tx: fix an assertion fail
Fix an assertion fail in rd_pick_intra_sub_8x8_y_subblock_mode().

BUG=aomedia:410

Change-Id: I22d4aaea0566336605230e09d9590bc235719685
2017-03-27 21:53:53 +00:00
Angie Chiang 4d8b8f492a Add const to rate in cost_coeffs_b
Change-Id: I9780e4e4f736b92b676f8a03a445a88749d4022e
2017-03-27 14:30:58 -07:00
Angie Chiang 74e2307bdc Use txb_entropy_ctx to store entropy ctx of lv_map
1) Add txb_entropy_ctx into MACROBLOCK_PLANE and PICK_MODE_CONTEXT

2) Add av1_get_txb_entropy_context() to compute the entropy context

3) Compute and sore the entropy context before av1_xform_quant()
return

Change-Id: Ia2170523af3163b9456f7c6a305c1e77ad2b23be
2017-03-27 14:30:58 -07:00
Angie Chiang 47e4b3696f Compute lv_map's coeff cost in av1_cost_coeffs()
1) move the original implementation in av1_cost_coeffs() to
cost_coeffs() and let av1_cost_coeffs become a switch for
choosing original coeff cost or lv_map's coeff cost

2) change get_txb_ctx's naming. Use plane_bsize instead of
bsize to make the intention clear.

3) remove txb context computing in get_txb_ctx
Change-Id: I17e3d39d796e051d1c90f0a0c5d7d0888b9ca292
2017-03-27 14:26:30 -07:00
Debargha Mukherjee 47748b5692 Adds binary code lib for coding various symbols
Adds a variable length binary code library for
coding various symbols for typical use in headers.

The main codes implemented are:
1. Coding a symbol from an n-ary alphabet using a
quasi-uniform code.
2. A bilevel code for coding symbols from an n-ary
alphabet based on a reference value for the symbol
also taken from the same alphabet.
The code has two steps. If the symbol is close to
the reference a shorter code is used, while if it is
farther away a longer code is used.
3. A finite (terminated) subexponential code that codes
a symbol from an n-ary alphabet using subexp parameter k.
4. A finite (terminated) subexponential code that codes
a symbol from an n-ary alphabet using subexp parameter k,
based on a given reference also taken from the same
alphabet. This code essentially reorders the values
before using the same code as 3.

Also adds corresponding encoder side functions to count
the number of bits used.

These codes will be subsequently used for more efficient
encoding of loop-restoration parameters and global motion
parameters.

Change-Id: I28c82b611925c1ab17f544c48c4b1287930764b7
2017-03-27 21:25:38 +00:00
Steinar Midtskogen 929e806a4d Fix cut&paste bug in the CLPF unit tests
The ssse3 code was run for the sse4.1 case, so the speed for the sse4.1
code wasn't tested.

Change-Id: I12028900baa15733089f170c8a23960c7492cb40
2017-03-27 19:31:20 +00:00
Thomas Davies e60ce83169 Add NEW_MULTISYMBOL experiment.
This experiment is for converting binary symbols in the baseline
into non-binary symbols. EC_MULTISYMBOL should continue to be used
by experiments with their own signalling for compatibility.

Change-Id: Idc11a469b1806948107c0d6966235f3053c43519
2017-03-27 19:26:58 +00:00
Steinar Midtskogen b754ec3e81 Fix an alignment issue in the CLPF unit test
Change-Id: I7eb6952f5ea639e55f108ba1250564cfc70a6363
2017-03-27 19:26:06 +00:00
Jean-Marc Valin e84eaf03d4 CDEF: Fix allocation of row_dering
Change-Id: Ic4c4f0ff7cf4063e2a0366af05442858b4b7fcca
2017-03-27 18:58:13 +00:00
Yushin Cho 6341f5c5c4 Remove av1 coeff context setting when PVQ is used
Entropy context of above and left block is not used
when PVQ is turned on.

Change-Id: I50c908bba800382438a48f7cc83f8b0f177393a1
2017-03-27 18:52:10 +00:00
Alex Converse 68abef8ca4 deltaq: Use block size / mask macros
Fixes unit tests with ext-partition

Change-Id: I17184c7321e27763eea5434f0d4425d928c0abcc
2017-03-27 16:38:07 +00:00
Tom Finegan 67741e0c52 Remove unused minimum iOS version from cmake build.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76

Change-Id: I70b88639db55f54bcdff1d87dadc8458a7c44b75
2017-03-27 12:58:40 +00:00
emilkeyder@google.com f3477635d3 Compute multiple global motions and pick best by error adv.
Modify ransac to keep the N best global motions by num_inliers and
variance rather than a single one. Compute the error advantage for
each in encode_frame_internal(), and use the best as the global motion
for that pair of <target, reference> frames.

Improvements for different values of N:

N                     %PSNR gain on lowres
1 (current impl)      1.287
2                     1.328
4                     1.370
8                     1.419
16                    1.427
32                    1.439

Change-Id: Ic0c9066a3f175a5ea0a78828cd244104e70144ba
2017-03-25 23:25:13 +00:00
Jean-Marc Valin 5bd2d2f9df
Remove redundant dering passes in CDEF search
Change-Id: I3b932544426cb9aeb63ab4e1f516a4d8195d0702
2017-03-25 09:15:28 -04:00
Jean-Marc Valin d4fd4eef61
CDEF: computing MSE only on the filtered blocks
Change-Id: I16881cd6267922a3e156defb90577d6ad2b46d5b
2017-03-25 09:15:28 -04:00
Jean-Marc Valin 32282f2c41 Save on CDEF encoder buffers by computing MSE one plane at a time
Change-Id: I17d88e565a8f9908a5bad92c26b7a54fe932fea3
2017-03-25 10:16:13 +00:00
Jean-Marc Valin ae91cabeaf Reduce horizontal CDEF padding to 8 pixels instead of 32
Reduces the amount of useless copying we do.

Change-Id: I743c88f4a49e04381213bc58e520427ff8979cee
2017-03-25 10:09:59 +00:00
Jean-Marc Valin deb1950bb3 CDEF encode buffering optimizations
Change-Id: I6b178d5ebf353bca98f18d8add2aa8b77e03cc4f
2017-03-25 10:09:59 +00:00
James Zern 12ec6c6529 args.c: add some explicit casts
values are range checked before returning; quiets -Wshorten-64-to-32
warnings

ported from libvpx:
d772d5570 args.c: add some explicit casts

Change-Id: I806af11b2aaf6760c7ab234a2fe2fdf40e7bece7
2017-03-25 02:13:17 +00:00
James Zern d92d60312a webmdec: quiet -Wshorten-64-to-32 warning
track->GetNumber() will fit in an int in well-behaved files

cherry-picked from libvpx:
c79665d0a webmdec: quiet -Wshorten-64-to-32 warning

Change-Id: I344a7dd05d04daf3df2d67358ea69f8014a03a5b
2017-03-25 02:13:17 +00:00
James Zern 3b96b76399 test/decode_test_driver: rm unused deadline member
has the side-effect of removing some lint and -Wshorten-64-to-32
warnings

ported from libvpx:
1b1e40c0b test/decode_test_driver: rm unused deadline member

Change-Id: Ic0ed650c856bf81f0ed2226601d86062d8fd10a4
2017-03-25 02:13:17 +00:00
Angie Chiang f8d165d1bb Clean up shorten-64-to-32 warning in scan.c
Change-Id: Ifbc5310fa6476c64db9d35576fa45dfb2014989f
2017-03-25 02:11:47 +00:00