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

76 Коммитов

Автор SHA1 Сообщение Дата
Yi Luo d4e3c21acc Fix EOB threshold array size
- TX_SIZES_ALL is the correct macro to cover all txfm sizes.

BUG=aomedia:435

Change-Id: I035a8395a78982e5b19857a3ba5f9d9f657b7902
2017-04-14 23:52:28 +00:00
Yi Luo cfe0fede62 Add EOB threshold calculation for ADAPT_SCAN
Change-Id: I0c58fb5ee2a77ae15f6243b1c645dbe601171e67
2017-04-13 18:08:24 +00:00
Zoe Liu 7f24e1b019 Remove the single ref inter mode NEWFROMNEARMV
Change-Id: I246da885154303d139f5d97c53ebfc55d6dc82ca
2017-04-10 20:30:56 -07:00
Yushin Cho b188ea1402 Add PVQ frame context in common and tiles.
In preparation for enabling backward updates of contexts for PVQ.
1. Default prob setting for PVQ,
which is based on flat probabilities at the moment.
2. At the end of encoding a frame, average probablities and expected values
of PVQ are copied to the frame context.

Change-Id: I1d087b98e6b0d55ebf8aef696dd986f88197cedf
2017-04-05 17:57:29 +00:00
Thomas Davies b1bedf5f73 Align EXT_TX with EC_MULTISYMBOL and EC_ADAPT.
Do multisymbol coding for transform type.
Load default cdf probabilities directly.
Use CDF frame update mechanism when EC_ADAPT is
enabled.

Change-Id: Id23c927e81587b560e9df8b9bc56c0e2e3bb6f03
2017-03-21 09:58:29 +00:00
hui su b4e25d2ccf Make ext-intra/intra-interp work with ec-multisymbol
Use cdf to signal intra filter type.
Skip forward update when ec-adapt is on.

Change-Id: Idd446e081b8e9ea33356e60423b372bfd85a80db
2017-03-20 23:18:47 +00:00
Alex Converse 57795a4c56 ext_partition_types: Bring into alignment with ec_multisymbol and ec_adapt
ec_multisymbol+ext_partition_types:
base_ext_types@2017-03-15T18:24:38.012Z -> 8565_3_ext_types@2017-03-17T18:29:48.794Z

   PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
-0.0346 | -0.0343 | -0.0341 |  -0.0345 | -0.0345 | -0.0344 |    -0.0345

ec_multisymbol+ec_adapt+ext_partition_types:
base_adapt_ext_types@2017-03-15T18:27:31.704Z -> 8565_3_adapt_ext_types@2017-03-17T18:30:01.108Z

   PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
-0.0422 | -0.0420 |     N/A |  -0.0425 | -0.0423 | -0.0423 |    -0.0420

Change-Id: Ia40f118f0faf546be13e02ec9ed584dd38529a59
2017-03-20 16:32:16 +00:00
Thomas Davies d6ee8a8ccb Add a CDF for coding delta_q.
Also remove forward updates for delta_q when EC_ADAPT
is enabled.

Change-Id: Idf71b57bfe7763bc60595bc45768e624dd7b67bd
2017-03-07 21:47:46 +00:00
Thomas Davies 665cd70a75 DELTA_Q: use correct probability description.
Delta Q is coded with a single tree context.

Change-Id: Ie1e56c70285e948232049bfb4a51ad0e9ee25f75
2017-03-06 13:17:52 +00:00
Angie Chiang bd57fc5542 Add probability/count tables for lv_map experiment
Change-Id: Ie73bb51d4a24c2ff719758c38e303db92e6f4500
2017-02-24 23:20:46 +00:00
Thomas Davies 1d7db728ae Use default CDF tables when initialising mode probs.
No change in BDR.

Change-Id: I77551120a2e94dcbf818b039154495f0f9b21755
2017-02-24 19:21:48 +00:00
Thomas Davies f3eb840a56 EC_MULTISYMBOL: make all CDFs have a extra element.
This will make it easier to add native CDFs for all the
dependent experiments without excessive macros.

Change-Id: Iee4710f0fe1c1b4300f686cdf2c5b879a36de987
2017-02-24 11:34:10 +00:00
Alex Converse 9210981861 palette: Use some enums / defines
Change-Id: If5d4f6d261276d9cfdd59fd7779467d92f56c395
2017-02-22 21:29:17 +00:00
Nathan E. Egge 2ea519e5fa Use tx_size_cdf with CONFIG_EC_MULTISYMBOL.
This commit produces a bit-exact bitstream because prior calls to code
 the tx_size using aom_write_tree() would automatically convert the
 aom_tree_index on the fly to a CDF.
The tx_size_cdf[]'s are now computed once per frame.
Based on recent tests, this patch reduces decode time by 4%.

Change-Id: I920dbf036b8a9574ea6e65ae5f9c43eef1c3f864
2017-02-17 19:29:53 +00:00
Thomas Davies 27713d93c1 EC_ADAPT: do faster adaptation initially.
Symbol count is maintained in the position after the
last CDF value.

Change-Id: I1882e48bfb1404ea7b83ef410298484939601796
2017-02-16 14:11:32 +00:00
clang-format 55ce9e0f35 apply clang-format
Change-Id: Ib1b5dde5d4c6479c968cd7d7a4a1d01abae1fcf6
2017-02-15 22:27:12 -08:00
Urvang Joshi 92b90f3022 Add comments about some default probability tables.
Change-Id: I070ee1acde80c99576d30f2611b6c653834b3e9b
2017-02-13 22:54:56 +00:00
Alex Converse a9598cd6bf ec_multisymbol: Split off new new_tokenset experiment
The new_tokenset experiment replaces the unconstrained tokenset with a
multisymbol alphabet in an inventive way.

Tested configurations:
new_tokenset + ec_adapt, new_tokenset, ec_multisymbol

Change-Id: I846ab2e51c2a1dc3f2f9904ed8c47a8e98f853c5
2017-02-06 21:03:01 +00:00
Thomas Davies ab78067c51 EC_MULTISYMBOL: Add block zero (CBP) counts and probs.
Preparation for merging EOB_TOKEN. The block_zero value
corresponds to the first EOB_TOKEN: other EOB_TOKEN values will
be merged with non-zero values.

Change-Id: I94036783ee240fa916a79c544ecd716a9c24fa59
2017-02-03 12:38:39 +00:00
Thomas Davies 8e0b8697d2 EC_MULTISYMBOL: Add new context tables.
These are optimized for EOB_TOKEN being associated
with the current position, not the previous.

CBP tables cover EOB_TOKEN for the the whole block.

This change causes a performance regression until
EOB_TOKEN is merged into the coding scheme.

Change-Id: Ica3a12ed97285cbae204ce3cc1a7e658ebcacc9f
2017-02-02 15:08:54 +00:00
Thomas Davies 0ccefe21af EC_MULTISYMBOL: merge ZERO_TOKEN into coding scheme.
Zero, one, and two or more coded as one symbol (head).
Remaining tokens coded as a tail symbol.

The pareto CDF distribution is adjusted to cover tokens from
two onwards.

Change-Id: I98b33fab6b9f52690f6ad618ac55e725a97be056
2017-01-31 11:13:04 +00:00
Urvang Joshi 23a611173b Palette code: add comments and rename some variables.
- Added comments for some tables and #defines for clarity.
- Renamed some variables to ensure we use "color_index" instead of
"color" for palette color index related variables.

Change-Id: Ica95a26e0f171a41a3259c8e6b3b891b8cd10151
2017-01-30 15:09:57 -08:00
Urvang Joshi 199a2f4052 Palette: Don't use top-right pixel for context of color indices.
This reduces the complexity in a number of ways:
- We need just 3 neighbors instead of 4.
- Possible contexts reduce from 16 to 5.
- On hardware side, getting the contexts for a whole block will be more
parallelizable.

At the same time, compression performance improves very slightly:
- Screen-content set (videos) (Google): BDRate improved by 0.32
- screenshots set (images) (AWCY): PSNR improved by 0.62:
https://arewecompressedyet.com/?job=palette_withTR2%402017-01-27T21%3A30%3A28.890Z&job=palette_noTR2%402017-01-27T21%3A41%3A34.312Z

Change-Id: Ie84ca32f05d55ad481a51c2d3abc579468597189
2017-01-30 17:48:46 +00:00
Urvang Joshi 56ba91bbe4 Palette: Don't store tokens for pixels outside image boundary.
If part of a block falls outside right and/or bottom image boundary,
then only store tokens for the part of it within the boundary.

Also, consider only the part of the block within the boundary when
calculating the number of colors in the image, deciding the base
colors for palette, RD calculation etc.

The part of color map corresponding to pixels outside the image
boundary is padded with color indices copied from same row/column.
This behavior is similar to how pixels outside the boundary are padded.

For screen_content set, this is improves compression performance by
0.038 overall. One clip, in particular, has a significant gain of 0.8.

Change-Id: I745ca032f313c5041aacc98c03ae4bfc33d840de
2017-01-26 18:03:33 +00:00
Jingning Han 758b2ceba3 Make adapt-scan support rectangular transform block sizes
This commit enables the adaptive scan order system support
rectangular trnasform block sizes. It resolves the coding failure
when rect-tx or var-tx are enabled.

BUG=aomedia:143

Change-Id: Ic565284e811e3f7e0ebf2e08fb3748257ce8a049
2017-01-21 21:05:10 +00:00
Thomas Davies 1bfb5edac3 EC_ADAPT: use tile context for intra mode syntax.
Change-Id: Id01c785ad48134075c4f6643233413564f0b8fbc
2017-01-20 14:11:12 +00:00
Jingning Han a6b0c4c9cd Support adaptive scan order in cb4x4 mode
This commit adds 2x2 transform block scan order to make the
adaptive scan order support cb4x4 mode.

BUG=aomedia:135

Change-Id: Ic8c3ae9ed65d577df629524b617b386b5e799d4c
2017-01-19 01:18:32 +00:00
Nathan E. Egge dd28aed875 Use uv_mode_cdf with CONFIG_EC_MULTISYMBOL.
Change-Id: I0cacd4e8cdd07458b36bbdd56e4f005327854b34
2017-01-05 08:26:14 +00:00
Nathan E. Egge 10ba2bedf0 Use kf_y_mode_cdf with CONFIG_EC_MULTISYMBOL.
Change-Id: Ic0eba16329d7b63dd7d18e9cd28b89be4b5f2710
2017-01-05 08:26:14 +00:00
Nathan E. Egge ecc21ec854 Use y_mode_cdf with CONFIG_EC_MULTISYMBOL.
Change-Id: Ia5046d9158d5421a7f6e0397f4fa1e1925ae2ccb
2017-01-05 08:26:14 +00:00
Nathan E. Egge a59b23dd4a Use inter_mode_cdf with CONFIG_EC_MULTISYMBOL.
Change-Id: I1cf27d2f029c1e985cafb468f60e7117d92593f5
2017-01-05 08:26:14 +00:00
Nathan E. Egge 00b3331ee8 Use switchable_interp_cdf with CONFIG_EC_MULTISYMBOL.
Change-Id: I3f7eeff102fc30e2cef59c2c07df94826587d100
2017-01-05 08:26:14 +00:00
Nathan E. Egge 29ccee03c0 Use intra_ext_tx_cdf with CONFIG_EC_MULTISYMBOL.
Change-Id: I21785bec0563299b4b0c1d17aaaa788e4e8df4d7
2017-01-05 08:26:14 +00:00
Nathan E. Egge dfa33f224b Use inter_ext_tx_cdf with CONFIG_EC_MULTISYMBOL.
Change-Id: I76259d6ec925a0c7024e7c70a517debe2d3bf1ab
2017-01-05 08:26:14 +00:00
Nathan E. Egge 9d9eb6c609 Use partition_cdf with CONFIG_EC_MULTISYMBOL.
Change-Id: I62b662052a4b9b1de07575824410aa9b2ce2c924
2016-12-16 21:30:50 +00:00
Nathan E. Egge 3129606766 Use segment tree_cdf with CONFIG_EC_MULTISYMBOL.
Change-Id: I0005c896a243275c052a0163a5da0f9230071743
2016-12-16 21:30:50 +00:00
hui su eda3d7646c Add intra-interp experiment flag
intra-interp experiment allows intra prediction to use different
interpolation filters. It was part of the ext-intra in the nextgenv2
branch.

Change-Id: I27ab692494dc79bb92e457dbf9a72988577f1c6d
2016-12-09 23:12:38 +00:00
Debargha Mukherjee 3981be93bf Add domain transform recursive filter
This filter is meant to replace the bilateral filter,
but is currently added in addition to the bilateral filter
for testing.

Change-Id: Ia529701e69833d47c11b3367d5bf804eb8498079
2016-12-06 00:54:23 +00:00
Yue Chen 69f18e1a64 Add WARPED_MOTION experiment
Performance gain (REF_MV on by default)
WARPED_MOTION: 1.061%
WARPED_MOTION+MOTION_VAR: 2.917%
MOTION_VAR: 2.337%

Change-Id: I43f742a02cdd43d13ef333a0a15087062ad020ab
2016-11-29 14:57:31 -08:00
Jingning Han fe45b216ac Deprecated the separate handle on rectangular tx_size in var_tx
The recursive transform block partitioning system naturally supports
the use of rectangular transform block size. Hence there is no need
to make a separate coding route for the rectangular transform block
size support there.

Change-Id: I709b61f94cd4a6ea3f33c05abe319488c7d24f5a
2016-11-22 22:25:43 +00:00
Sarah Parker 6fddd18f74 Add ability to have multiple compound modes for interinter
This is currently just a refactor and creates no change in performance.
It allows new compound types to be added easily in the future to
facilitate experiments with segmentation masks.

Change-Id: If48fed216d482454fabb45a304b4220ada0dbdee
2016-11-11 23:53:03 +00:00
David Barker cf3d0b00ae Remove Global_Motion_Params and GLOBAL_MOTION_TYPE
After https://aomedia-review.googlesource.com/#/c/5589/ ,
the Global_Motion_Params and GLOBAL_MOTION_TYPE types
are redundant, and can be removed in favour of
WarpedMotionParams and TransformationType respectively.

Change-Id: I33f3796e5c469e595fd012ccdb65a672dd1bb86c
2016-11-11 18:25:48 +00:00
Debargha Mukherjee 8f209a87be Add guided projection filter to loop restoration
BDRATE:
lowres: -1.01% (up from -0.7%)
midres: -1.90% (up from -1.5%)
hdres:  -2.11% (up from ~1.7%)

Change-Id: I1fe04ec9ef90ccc4cc990e09cd45eea82c752e0c
2016-11-10 23:18:43 +00:00
David Barker f541932b00 Fix compile with ext-tx
The switch to using daala_ec by default broke the compile
when used with ext-tx, as some code which should have been
inside #if !CONFIG_EXT_TX was not inside such a block.

Change-Id: I4cec9755bd4e6134a7d3036c4482f952a815cafc
2016-11-10 15:23:56 +00:00
Thomas Davies 6519bebf34 EC_ADAPT: refactor and fix MinArfFreq unit tests.
Ensure that cdfs are synced with pdfs after every
forward update.

Change-Id: I5677f78300156c8622f1728d7a343ff6c3a4ea64
2016-10-29 22:21:32 -07:00
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
Jingning Han 607fa6a6ce Support potential 2x2 transform block unit
Make the codec support 2x2 tranform block unit for chroma components.

Change-Id: Ic454535bd5620abe88a2e99789160cc4664ee518
2016-10-26 15:38:13 -07:00
Jingning Han aae72a69c3 Refactor transform size coding
Introduce the transform block partition depth macro definition.

Change-Id: I218dc77a77c8e967da4d270d4ec0d7691b712a5f
2016-10-25 15:42:30 -07:00
Nathan E. Egge 6ec4d10d3c Update inter_mode_cdf tables once per frame.
Move computing the inter_mode_cdf tables per coded inter mode symbol to
 computing them only when the probabilities are updated.

Change-Id: I7a7b059ee75723cb6f278ed82a20cf34c27915d8
2016-10-21 22:54:50 +00:00
Nathan E. Egge 380cb1a93c Update uv_mode_cdf tables once per frame.
Move computing the uv_mode_cdf tables per coded intra mode symbol to
 computing them only when the probabilities are updated.

Change-Id: I627b59d30726c913f5d7ba7753cb0446a12655bb
2016-10-21 12:39:04 -07:00