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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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