Commit Graph

18141 Commits

Author SHA1 Message Date
Alex Converse
aca9feba82 Add ec_multisymbol for common daala_ec and rans code
The new ec_multisymbol experiment supersedes the rans experiment and is
used for multisymbol features that can be backed by either daala_ec or
rans.

This experiment is automatically enabled by ec_adapt and will try to
enable daala_ec or ans (in that order).

Change-Id: Ie75b4002b7a9d7f5f7b4d130c1aacb3dbe97e54f
2016-10-29 17:05:40 -07:00
Alex Converse
242558a21b Handle entropy coder experiment dependencies
Change-Id: I854c53d9379f820b5a78fcb53f9ef09bc6f9d9e7
2016-10-29 17:05:40 -07:00
Yaowu Xu
15c1aa60f3 Disable the SuperframeTest with --enable-daala_ec.
Due to the way the daala entropy coder handles raw bits, the current
test is broken because the buffer length is not known when calling
aom_reader_init() is called.

Change-Id: I76e93ec0e160e31f286c23f7c9c0094390c6c2d4
2016-10-29 17:05:40 -07:00
Alex Converse
bc0a5bacb5 Fix ec_adapt+daala_ec test failure
AV1/AqSegmentTest.TestNoMisMatchAQ1/6 was failing with this experiment
pair.

BUG=aomedia:70

Change-Id: I8c53a043471a87a98a06687afce2e28891592362
2016-10-29 17:05:40 -07:00
Thomas
9ac5508f32 Add EC_ADAPT experiment for symbol-adaptive entropy coding.
This experiment performs symbol-by-symbol statistics
adaptation for non-binary symbols. It requires DAALA_EC or
RANS and ANS to be enabled. The adaptation is currently
based on a simple recursive filter and is taken from
Daala. It has an adaptation rate dependent on alphabet size,
taken from Daala. It applies wherever non-binary symbols
are encoded using Cumulative Probability Functions rather
than trees.

Where symbols are adapted, forward updates in the compressed
header are removed.

In the case of RANS coefficient token values are adapted,
with the exception of the zero token which remains a
binary symbol. In the case of DAALA_EC other values
such as inter and intra modes are adapted as CDFs are
provided in those cases.

The experiment is configured with:

./configure --enable-experimental --enable-daala-ec --enable-ec-adapt

or

./configure --enable-experimental --enable-ans --enable-rans \
    --enable-ec-adapt

EC_ADAPT is not currently compatible with tiles.

BDR results on Objective-1-fast give a small loss:

PSNR YCbCr:      0.51%      0.49%      0.48%
PSNRHVS:      0.50%
SSIM:      0.50%
MSSSIM:      0.51%
CIEDE2000:      0.50%

Change-Id: I3888718e42616f3fd87144de7f125228446ac984
2016-10-29 16:57:48 -07:00
Jingning Han
ee9264c923 Merge "Replace num_4x4_blocks_txsize_loopup table" into nextgenv2 2016-10-29 23:01:26 +00:00
Jingning Han
73d65a49a9 Merge "Refactor rate-distortion optimization of recursive transform partition" into nextgenv2 2016-10-29 23:01:14 +00:00
Jingning Han
9fb1d69e82 Use the actual transform block size for loop filter selection
Parse the recursive transform block partition to fetch the actual
transform size. Use this correct transform size to select the
corresponding loop filter kernel. This slightly improves the coding
performance of recursive transform partition for hdres to 0.14%.

Change-Id: Ibe8bc3fdd0d222a4f1fb8156c56a407bec052b9b
2016-10-29 15:59:55 -07:00
Urvang Joshi
1252f75616 Merge "RANGE_CHECK: "==" || ">" is simply ">="." into nextgenv2 2016-10-28 23:55:01 +00:00
Zoe Liu
9d37fe47a2 Merge "Clean the code in ref frame context decision for ext-refs" into nextgenv2 2016-10-28 23:36:41 +00:00
Jingning Han
32b2028b30 Replace num_4x4_blocks_txsize_loopup table
Unify the transform block size access table in preparation for
2x2 transform integration.

Change-Id: I308def6729e138ae2b2542175206e3225c0cb392
2016-10-28 15:42:44 -07:00
Jingning Han
9fdc42293f Refactor rate-distortion optimization of recursive transform partition
Support rectangular transform block in the rate-distortion cost
estimator.

Change-Id: I99201fcae797c1ed2f2184021a215867eac0288f
2016-10-28 14:48:40 -07:00
Sarah Parker
d722f71ed8 Merge "Bitwise to logical & in rdopt ext tx prune function" into nextgenv2 2016-10-28 21:43:03 +00:00
Urvang Joshi
cd8ab904e1 RANGE_CHECK: "==" || ">" is simply ">=".
Also:
- For unsigned ints, don't check value >= 0 as that is always true.
- Add "-Wlogical-op" warning flag which would have warned that "logical
  'or' of collectively exhaustive tests is always true" before this
  patch.

Change-Id: Idf3bd312464397f2df19256fc69b22f345dc7753
2016-10-28 14:40:29 -07:00
Yaowu Xu
d64eaf138e Merge "Tile groups: ensure each tile in a TG has a length." into nextgenv2 2016-10-28 21:26:32 +00:00
Yaowu Xu
edd3f9c418 Merge "Fix update_delta_q_probs compile warning" into nextgenv2 2016-10-28 21:26:23 +00:00
Yaowu Xu
efd5725242 Merge "Encode and decode multiple tile groups" into nextgenv2 2016-10-28 21:26:11 +00:00
Sarah Parker
68a26b6b4a Bitwise to logical & in rdopt ext tx prune function
Making this change in case the future implementation changes and the
compairson is no longer between single bits.

Change-Id: I94f474ce7d82febfa23cec65cbe1b9d240b42e02
2016-10-28 13:19:33 -07:00
Thomas Davies
8fe64a3a23 Tile groups: ensure each tile in a TG has a length.
This ensures TGs can be decoded even if the whole
frame has not been received and the frame length
is not known.

Change-Id: If24837fcc3b5c46554751be792e91100de73e8d6
2016-10-28 13:01:40 -07:00
Jingning Han
be44c5f46f Fix update_delta_q_probs compile warning
Change-Id: Ifb93970ed876ed61259b2f8da739171857c97fda
2016-10-28 13:01:40 -07:00
Debargha Mukherjee
3ff8cb764b Merge "Fix aom_fdct8x8_ssse3 in high bit depth mode" into nextgenv2 2016-10-28 19:31:45 +00:00
Zoe Liu
782c96438c Clean the code in ref frame context decision for ext-refs
For compound mode, it is a sure thing that one of the 2 reference frames
would be either a forward predictive reference, or a backward predictive
reference, and the other would provide a different prediction.

Change-Id: I8d7b40525bec4db0f26ba255c8eefa9f20bd52a3
2016-10-28 12:23:38 -07:00
Urvang Joshi
76bc587f69 Merge "get_palette_color_context: Make code more readable." into nextgenv2 2016-10-28 19:03:26 +00:00
Thomas Davies
80188d1546 Encode and decode multiple tile groups
This is a manual adaptation of the following commit from aom/master:
ce12003d60a1c8d6c65ed07ba165c34062fcbcbd

The original commit message:

A tile group is a set of tiles in scan order.

Each tile group has a version of uncompressed and compressed headers,
identical apart from tile group parameters.
Encoding probability updates takes account of the number of
headers to control overheads.

The decoder supports arbitrary numbers of tile groups with
arbitrary number of tiles. The number of tiles in a TG is
signalled in the uncompressed header for that TG.

The encoder currently only supports a fixed number
of TGs (3, when error resilient mode is on) of equal size
(except possibly for the last one).

The average BDR performnce with 3 tile groups versus
anchor with error resilient mode and up to 16 tiles is:

NR YCbCr:      3.02%      3.04%      3.05%
PSNRHVS:      3.09%
SSIM:      3.06%
MSSSIM:      3.05%
CIEDE2000:      3.04%

Change-Id: I9b97c5ed733103b9160a3a5d4370de5322c00c0b
2016-10-28 11:52:13 -07:00
Urvang Joshi
79f4fc476d get_palette_color_context: Make code more readable.
For clarity, use separate variables for 'color_ctx_hash' and
'color_ctx' instead of reusing same variables for both.

BUG=webm:1324

Change-Id: I3a516ea54353e1f0737822c613a68da252e30c6e
2016-10-28 09:42:05 -07:00
Angie Chiang
3655dcd4cf Fix tmp_rd type error in handle_inter_mode()
Change-Id: I9398c77c12e9c4caa19a76b92e3035a3135cfd7a
2016-10-28 09:05:27 -07:00
Angie Chiang
349b723f5c Merge "Add unit test for adapt_scan experiment" into nextgenv2 2016-10-28 15:53:59 +00:00
Angie Chiang
6b7255374d Merge "Pass block pixel width/height into av1_predict_intra_block" into nextgenv2 2016-10-28 15:51:30 +00:00
Jingning Han
cb277c0b82 Merge "Refactor recursive transform block partition search" into nextgenv2 2016-10-28 15:50:36 +00:00
Jingning Han
6675bbca0e Merge "Simplify logics in encode_inter_mb_segment" into nextgenv2 2016-10-28 15:50:15 +00:00
Jingning Han
fe8d6c62ce Merge "Refactor recursive transform block decoding" into nextgenv2 2016-10-28 15:49:27 +00:00
Jingning Han
c17b9e00dc Merge "Refactor recursive transform block size decoding" into nextgenv2 2016-10-28 15:49:06 +00:00
Jingning Han
73144260e3 Merge "Remove unused get_tx1d_width/height wrapper" into nextgenv2 2016-10-28 15:48:25 +00:00
Jingning Han
2b0670e10a Merge "Use transform block partition depth count for frame header reset" into nextgenv2 2016-10-28 15:48:11 +00:00
Yaowu Xu
2df83d5c10 Merge "Remove av1_use_hp_mv()" into nextgenv2 2016-10-28 15:26:35 +00:00
Yaowu Xu
c66f264d17 Merge "rans: Use symbol coding for motion vectors" into nextgenv2 2016-10-28 15:26:22 +00:00
David Barker
0602edfbc5 Fix aom_fdct8x8_ssse3 in high bit depth mode
Change-Id: I63e492163ef10e12a842837368c209b8ffc4eee0
2016-10-28 10:13:43 +01:00
Jingning Han
5822404485 Refactor recursive transform block partition search
Use unified transform block size and coding block size map. This
prepares for the integration of 2x2 transform block size and the
rectangular transform block size.

Change-Id: I99f51017d19aef337639b708ee9c7faedcc20935
2016-10-28 05:12:19 +00:00
Jingning Han
c4049db573 Simplify logics in encode_inter_mb_segment
Unify coefficient context used by different experiments. Make
block size and transform block size consistent with rest codebase.

Change-Id: I237336f161d6c473b88c59c48ee68d24b75ce738
2016-10-28 05:12:05 +00:00
Jingning Han
5f61426424 Refactor recursive transform block decoding
Unify the transform block and coding block mapping.

Change-Id: Ifb394809a4aafee6adf2b49a2607036cf13c878e
2016-10-27 22:11:24 -07:00
Jingning Han
65abc314c4 Refactor recursive transform block size decoding
Unify the transform block size to block size mapping.

Change-Id: Ic7359d016cd5965983c4a5476624c09f3123f91c
2016-10-27 22:11:20 -07:00
Yaowu Xu
94df7ab121 Merge "Deringing support for 4:2:2 by not deringing chroma" into nextgenv2 2016-10-28 04:20:17 +00:00
Yaowu Xu
fbf8788d99 Merge "Namespace the idct/iad symbols" into nextgenv2 2016-10-28 04:19:51 +00:00
Angie Chiang
45c198a197 Pass block pixel width/height into av1_predict_intra_block
Change-Id: Ia69bceef24b61b0a222783eba79e7a70bb60edd8
2016-10-27 17:13:50 -07:00
Sarah Parker
243f87ef49 Merge "Cosmetic fixes in global motion experiment" into nextgenv2 2016-10-27 23:23:39 +00:00
Zoe Liu
b99af6e3e9 Merge "A small bug fix in ext-refs on the RD mode selection" into nextgenv2 2016-10-27 22:43:55 +00:00
Alex Converse
6317c88f5a Remove av1_use_hp_mv()
It always returns true since the related misc_fix[1] was merged.

[1] 23e83574b6a5105bdc686c49f2d5909f33ea721f

Change-Id: Ie3af685572a2f0a42d2b9fb9903c1abeea225dfd
2016-10-27 14:33:48 -07:00
Debargha Mukherjee
058e42d399 Merge "Fix clpf and dering signalling when used with ext-partition-types" into nextgenv2 2016-10-27 20:45:07 +00:00
Alex Converse
3fc98e86d1 rans: Use symbol coding for motion vectors
Change-Id: If497b53c3b36e32fb98c99dba2d4a490e226572a
2016-10-27 12:38:43 -07:00
Jean-Marc Valin
c67b895fa4 Deringing support for 4:2:2 by not deringing chroma
No change in output for 4:2:0 and 4:4:4

Change-Id: Ic46753d23a5b5f90b611a3da1a4574870519957c
2016-10-27 12:37:52 -07:00