17183 Commits

Author SHA1 Message Date
Johann Koenig
ace4073090 Merge "Use data size directly instead of recomputing." 2016-06-15 18:23:34 +00:00
Debargha Mukherjee
918ad13b56 Merge "Pick up correct dequant for segment with new-quant." into nextgenv2 2016-06-15 16:51:38 +00:00
Debargha Mukherjee
00b6ad1ebf Merge "Disable loop restoration when LPF_PICK_MINIMAL_LPF." into nextgenv2 2016-06-15 16:50:55 +00:00
Debargha Mukherjee
00f1580a14 Merge "Remove magic number from traversal (CYCLIC_REFRESH_AQ)." into nextgenv2 2016-06-15 16:50:15 +00:00
Debargha Mukherjee
e20a29d3b0 Merge "Select segment based loopfilter strength for supertx blocks." into nextgenv2 2016-06-15 16:49:34 +00:00
Jacky Chen
9c90830165 Merge "vp9: Code clean up for short circuit feature in low temp variance." 2016-06-15 16:49:32 +00:00
Debargha Mukherjee
343fe016ae Merge "Remove now superfluous argument from predict_b_extend." into nextgenv2 2016-06-15 16:48:13 +00:00
Debargha Mukherjee
52c71f749d Merge "Rework supertx segment handling and adaptive quantization." into nextgenv2 2016-06-15 16:47:58 +00:00
Debargha Mukherjee
b2aabeffc4 Merge "Minor refactor of decode_block for supertx." into nextgenv2 2016-06-15 16:47:28 +00:00
Debargha Mukherjee
3b84c803d8 Merge "Re-initialise quantiser after changing segment." into nextgenv2 2016-06-15 16:45:57 +00:00
Debargha Mukherjee
1b735da7d5 Merge "Refactor variance aq." into nextgenv2 2016-06-15 16:45:21 +00:00
Debargha Mukherjee
46f048e397 Merge "Pass segment id explicitly to quantizer init." into nextgenv2 2016-06-15 16:44:37 +00:00
Debargha Mukherjee
095c88e470 Merge "Fix estimate_wedge_sign with high bit-depth." into nextgenv2 2016-06-15 16:43:51 +00:00
Jingning Han
c457fc3553 Merge "Rework transform quantization pipeline" into nextgenv2 2016-06-15 16:07:10 +00:00
Jingning Han
08bf788ebd Merge "Refactor the trellis optimization process" into nextgenv2 2016-06-15 16:07:03 +00:00
Jingning Han
e9c44a76a2 Refactor trellis optimization process
This commit refactors the trellis coefficient optimization process.
It saves multiplications used to generate the final dequantized
coefficients. It also removes two memset operations on quantized
and dequantized coefficient sets.

The trellis coefficient optimization is on average running over
10% faster.

Change-Id: If3aa26d2a706c3012bf2b7ac059bf1825250e81f
2016-06-15 09:06:13 -07:00
Scott LaVarnway
7901a051c9 VP9: block_yrd(): Use RD_COST * instead
of int *rate, int *dist.

Change-Id: I7cbaea5252615b6b45b33e896f637cf7d076588a
2016-06-15 05:39:00 -07:00
Scott LaVarnway
221fcdac85 Merge "VP9: minor block_yrd() refactoring" 2016-06-15 11:46:54 +00:00
Geza Lore
d3df694fa8 Fix estimate_wedge_sign with high bit-depth.
This fixes some crashes in
VP10/EndToEndTestLarge.EndtoEndPSNRTest/ with high bit-depth and
ext-inter.

Change-Id: I10f0f08e1be4bd5c388616074d4aa3f91a2fda7a
2016-06-15 10:52:29 +01:00
Hui Su
1f493d1ff8 Merge "Speed up ext-intra inter frame encoding" into nextgenv2 2016-06-15 02:46:06 +00:00
Hui Su
e7fb03c8ae Merge "ext-intra: refactor rd loop in interframe" into nextgenv2 2016-06-15 02:46:00 +00:00
JackyChen
17962ab2c0 vp9: Code clean up for short circuit feature in low temp variance.
Change-Id: I7573a5cf0ab79abed8d124019c0ed6d9531277f9
2016-06-14 16:53:13 -07:00
Jingning Han
1faf288798 Rework transform quantization pipeline
This commit reworks the transform and quantization unit. It enables
the use of adaptive quantization for intra modes. This further
improves the compression performance:
lowres 0.36%
midres 0.79%
hdres  0.73%

The key frame coding performance is improved:
lowres 1.7%
midres 1.9%
hdres  3.3%

The overall coding gains are:
lowres 1.1%
midres 1.8%
hdres  2.3%

Change-Id: Iaec1a3a4c1d5eac883ab526ed076d957060479dd
2016-06-14 16:32:04 -07:00
Hui Su
69f6fd2134 Merge "Fix rate cost calculation for ext-intra" into nextgenv2 2016-06-14 23:11:25 +00:00
Johann
a9936de384 Use data size directly instead of recomputing.
Cleans warning in Android build:
comparison of integers of different signs: 'unsigned int' and 'int'

int n = (int)VPXMIN(sizeof(clear_buffer), data_end - data);
             ^      ~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~

Change-Id: I964355ceae6b39e22c0196294b25e28387f84945
2016-06-14 22:57:26 +00:00
Johann
c93d30a47f Match prev_ to number_of_layers
Defined as unsigned in VP8_CONFIG

Cleans warning in Android build:
comparison of integers of different signs: 'unsigned int' and 'int'
if (cpi->oxcf.number_of_layers != prev_number_of_layers)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~
Change-Id: I969e64cd2bfda6e61c564476dbd35b892b177646
2016-06-14 22:57:14 +00:00
Johann
95d29675b2 Active map and ROI map use unsigned rows/cols
The vpx_roi_map_t and vpx_active_map_t structures use unsigned rows
and cols but VP8_COMMON uses signed values for mb_rows and mb_cols.

Cleans warning in Android build:
comparison of integers of different signs: 'int' and 'unsigned int'
if (cpi->common.mb_rows != rows || cpi->common.mb_cols != cols)
    ~~~~~~~~~~~~~~~~~~~ ^  ~~~~
comparison of integers of different signs: 'int' and 'unsigned int'
if (cpi->common.mb_rows != rows || cpi->common.mb_cols != cols)
                                   ~~~~~~~~~~~~~~~~~~~ ^  ~~~~
comparison of integers of different signs: 'unsigned int' and 'int'
if (rows == cpi->common.mb_rows && cols == cpi->common.mb_cols)
    ~~~~ ^  ~~~~~~~~~~~~~~~~~~~
comparison of integers of different signs: 'unsigned int' and 'int'
if (rows == cpi->common.mb_rows && cols == cpi->common.mb_cols)

Change-Id: If1f118c20ffefd2530fbd371e6787cc8a6c31f0a
2016-06-14 22:55:47 +00:00
Johann
4b8b31838b Make new_qc signed
Mode is signed

Cleans warning in Android build:
comparison of integers of different signs: 'int' and 'unsigned int'
if (ctx->oxcf.Mode != new_qc)
    ~~~~~~~~~~~~~~ ^  ~~~~~~

Change-Id: I5cf81c40b103e688a31e1339511f5c9eb27edd38
2016-06-14 22:54:58 +00:00
Hui Su
703585b244 Merge "Handle intra modes when tx type speed feature is enabled" into nextgenv2 2016-06-14 22:37:19 +00:00
Jingning Han
48f5125749 Merge "Fix enc/dec mismatch in non-420 settings" into nextgenv2 2016-06-14 21:54:08 +00:00
hui su
8c3b3d3686 Handle intra modes when tx type speed feature is enabled
Change-Id: I9dc156214f3b3ded33ab30d558124b3151548161
2016-06-14 13:46:53 -07:00
hui su
8f9c9b28a8 Speed up ext-intra inter frame encoding
Skip filter intra mode search when regular intra modes have large
rd cost.

Encoding speed improvement:  8%.

Compression performance drop: 0.02%  / 0.09%  / 0.03% on
                              lowres / midres / hdres

Change-Id: I94d3e48781bff6ae6895a54f271dd65c959bb976
2016-06-14 13:46:17 -07:00
hui su
70566f0563 ext-intra: refactor rd loop in interframe
Move filter intra modes search to the end, after regular
mode search.

On average no performance changes.

Change-Id: I9293c8fdf706ebf831fbd61c6bb81959790f4848
2016-06-14 13:46:17 -07:00
hui su
7fa61d7d51 Fix rate cost calculation for ext-intra
It was broken by commit 8ee640f979.

Change-Id: I26b9eba810c74849b0805e64da2d269ab0685cb9
2016-06-14 13:46:17 -07:00
Jingning Han
a116ab7092 Merge "Make tx_type speed feature default" into nextgenv2 2016-06-14 20:45:03 +00:00
Johann
c516dd67bc neon hadamard 16x16
Runs about twice as fast as C

BUG=webm:1027

Change-Id: I6760d99f4e22259439ca35d746194b12a81bfa71
2016-06-14 19:23:38 +00:00
Johann Koenig
63eb2ee056 Merge "hadamard 16x16 test" 2016-06-14 19:22:59 +00:00
Geza Lore
1e46c740c3 Pick up correct dequant for segment with new-quant.
Change-Id: Id73500305a7cc581c11461c9ddb1b22dd8f5d8f4
2016-06-14 16:47:17 +01:00
Jacky Chen
d5be4a17ef Merge "vp9: Encoding cycle reduction for speed 8." 2016-06-14 15:41:32 +00:00
Geza Lore
3cf3ce949f Disable loop restoration when LPF_PICK_MINIMAL_LPF.
The speed feature sf->lpf_picl == LPF_PICK_MINIMAL_LPF is used
to disable loop filtering. This did not work with the loop-restoration
experiment, but now it is respected.

Note that this speed feature is only used in real-time cpu-used >= 8
settings.

Change-Id: I193723c9ac5f802ec31d8c8b4d37650796e065fd
2016-06-14 16:07:51 +01:00
Geza Lore
58168f5bf4 Remove magic number from traversal (CYCLIC_REFRESH_AQ).
mi->stride now depends on the maximum superblock size, and hence
the constant 8 padding is no longer appropriate. Traverse the array
using mi->stride instead.

Change-Id: I8e84b9fe1728f6663f8c10765fe32206375f1e71
2016-06-14 16:07:51 +01:00
Geza Lore
44b91a0e76 Select segment based loopfilter strength for supertx blocks.
Segment based loopfilter strength for supertx coded blocks is now
selected based on the minimum of all segment IDs within a supertx
coded block (same as the quantiser settings).

Change-Id: Ib056bd0d05f6a1d3b512a76deb4e2ad4db0f7dc4
2016-06-14 16:07:51 +01:00
Geza Lore
7faae780a5 Remove now superfluous argument from predict_b_extend.
Change-Id: I7a76756842af9ce806c6e0e1f98f294af748e8bd
2016-06-14 16:07:50 +01:00
Geza Lore
7dd90c9d22 Rework supertx segment handling and adaptive quantization.
Segment level quantizer settings for supertx coded blocks are now
selected based on the minimum of all segment IDs within a supertx
coded block.

This also fixes the 3 adaptive quantization modes with supertx.

Change-Id: Ib5db099539d4f82f240e1d745d6e5264f8b34cde
2016-06-14 16:07:50 +01:00
Geza Lore
32992fa0b1 Minor refactor of decode_block for supertx.
Exit early from function when supertx is used, rather than putting
the bulk of the function body in a single conditional.

Change-Id: I41f388a45bd46e4a6ee1c51f26782ed9bddff4e5
2016-06-14 16:07:50 +01:00
Geza Lore
9e95919414 Re-initialise quantiser after changing segment.
When using VARIANCE_AQ, we can change the segment assignment after
initialising the quantiser in set_offsets, so re-initialise it when
we do so.

Change-Id: I1f168553aaf0ade419f0d4bf05820cd591b87659
2016-06-14 16:07:50 +01:00
Geza Lore
d60523bc28 Refactor variance aq.
Explicitly signal when the segment map is being refreshed when
using VARIANE_AQ. This simplifies decisions about when the segment id
needs to be set from the previous segment map vs based on the current
variance.

Change-Id: Ieb12c950e9cfbc3f53f4d184880071dea805563c
2016-06-14 16:07:50 +01:00
Geza Lore
2a588555bb Pass segment id explicitly to quantizer init.
This is purely refactoring in preparation of fixing supertx segment
handling

Change-Id: I74bcae34241fdf2b592e1cd45b67af77b9e16c9a
2016-06-14 16:07:37 +01:00
Debargha Mukherjee
ed3034e066 Merge "A crash fix for supertx / ext-inter combination." into nextgenv2 2016-06-14 14:44:55 +00:00
Paul Wilkins
19a4ce904d Merge "Small re-arrangement." 2016-06-14 11:46:58 +00:00