17183 Commits

Author SHA1 Message Date
Alex Converse
6b9cb8c489 Add some ANS helpers needed to replace the vpx bool coder with pure ANS.
Change-Id: I32b63fca020c410cef16e93379b4e6e281ccbccd
2016-03-22 16:23:23 -07:00
Yunqing Wang
dc5f7712f2 Prevent encoder crash caused by row tile dependencies
In multi-thread case, the encoder may crash if using encoder option
tile-rows > 0. To prevent that, force tile-rows=0 in this situation.
This is a workaround for WebM issue 1095:
https://bugs.chromium.org/p/webm/issues/detail?id=1095

The further fix can be done by adding synchronizations after a tile
row is encoded. But this will hurt multi-threaded encoder performance.
So, it is recommended to use tile-rows=0 while encoding with threads
> 1.

Change-Id: I656cbcc200f8d0410d09530e7981ad8f32fe7bc9
2016-03-22 16:15:12 -07:00
Yunqing Wang
b198bcd528 Simplify the loopfilter synchronization logic in VP8 encoder
This patch was to fix a reported Hangouts deadlock/freezing issue
in VP8 encoder(issue 27232610). The original encoder loopfilter
synchronization happened in the following frame, which was prone
to causing problems in some complex use cases. This patch simplified
the synchronization logic.

More testing needs to be done.

Change-Id: I38fd3f35d11f98fae1e44546aa5e4c6d6e19c4be
2016-03-22 14:13:18 -07:00
Yue Chen
2613b5e9d6 Merge "Refactor prediction functions of OBMC" into nextgenv2 2016-03-22 21:06:16 +00:00
Paul Wilkins
a84f1f846e Increase min-max q range for normal inter frames.
Allow the encode loop to select from a wider range of Q values
when encoding normal (non arf or kf) frames.

This change is targeted at improving psycho-visual quality in some
easy sections that are currently not getting enough bits.
This is likely to be a little worse from a metrics perspective  and may also
have a small impact on encode speed in cases where extra recode
iterations are triggered.

Change-Id: I667eebf33c753bcbcf8b93596467369e5708b889
2016-03-22 12:56:05 -07:00
Paul Wilkins
9d8ead125d Force recode for bad rate misses.
Adds a second threshold for recodes even on frames where
recode is normally disabled if there is a big rate miss.

Change-Id: Ifd4a34707da55ec15eb7cfb87de4644b8d76deb2
2016-03-22 12:45:27 -07:00
Julia Robson
5cce322a09 Porting ext_partition experiment from nextgen
This has been ported under ext_partition_types because it is due
to be combined with the coding_unit_size experiment which is
already being ported under ext_partition

Change-Id: I47af869ae123ddf0aa99160dac644059d14266ee
2016-03-22 12:29:01 -07:00
Paul Wilkins
ee35f4dede Fix some HBD scaling bugs.
Fixed a bug for HBD in stats output and scaling of a threshold
within the first pass code.

Change-Id: Icd0463d78cc9ce4661b027b0612c55c0628d212f
2016-03-22 12:28:02 -07:00
Marco
01283e2727 vp9: Non-rd partition selection: use consec_zeromv to set sb_is_skin.
Change-Id: I084360cdeabfc63e146a969053d91baee27f4001
2016-03-22 11:16:06 -07:00
Alex Converse
b00c09026c Wrap write_modes functions with macros to avoid ifdefs at all the callsites.
Change-Id: I5a960bf63ec404f0fbfe6a404f436ef4122a219d
2016-03-22 10:02:23 -07:00
Angie Chiang
9d380d8872 Merge "mv vp10_fwd_txfm2d_#x# into vp10_rtcd.h" into nextgenv2 2016-03-22 01:07:56 +00:00
Angie Chiang
063e965d7d Merge "Passing TXFM_TYPE instead of func pointer" into nextgenv2 2016-03-22 01:07:42 +00:00
Yue Chen
b5083af67a Merge "Refactor transform type-size search function" into nextgenv2 2016-03-22 00:58:44 +00:00
Jingning Han
4df51c8de4 Merge "Refactor sub8x8 reference motion vector search function" into nextgenv2 2016-03-22 00:07:45 +00:00
Jingning Han
bfdcccd8a1 Merge "Rework the DRL syntax entropy coding system" into nextgenv2 2016-03-22 00:07:36 +00:00
Yue Chen
2e3f77316d Refactor prediction functions of OBMC
Merge the functions that generate prediction by above/left predictors
for the encoder and the decoder.

Change-Id: I57e53a8f2eb8d3028c4ed0c9abdcbf00503f95a0
2016-03-21 17:04:13 -07:00
Yue Chen
7c1f6d1862 Refactor transform type-size search function
Decompose choose_tx_size_from_rd into three functions that determine
the transform coding rd at different stages. Besides the original
function, txfm_yrd() calculates the rd for fixed size and type.
choose_tx_size_fix_type() fixes the type and searches for the size.
It can enable other experiments to do restricted tx searches so as to
reduce the impact on speed.
Similar refactoring is done for select_tx_type_yrd() in VAR_TX.

Performance change in baseline is trivial:
0.014/0.001/-0.020 for lowres/midres/hdres.

Change-Id: I2ecbf6066329be088ec1bfb69013b657b14b8afe
2016-03-21 16:12:05 -07:00
Alex Converse
e6a136e864 Add buf_ans.h to the Makefile.
Change-Id: I6339912d240a1c2c3aa2f7303e7ca4d9721a29f4
2016-03-21 14:13:26 -07:00
Yaowu Xu
cbfc15b11b Merge "Properly set rate_nocoef when pallete mode is used" into nextgenv2 2016-03-21 20:44:17 +00:00
Debargha Mukherjee
c28dbdf665 Merge "Adds 1D transforms for ADST/FlipADST to make 16" into nextgenv2 2016-03-21 20:40:21 +00:00
Alex Converse
d324c6b025 Write MB tokens using the forward buffered ANS writer.
This allows sharing more code paths with the rest of the code an allows
for easier compatibility with the other experiments.

Change-Id: Id288b533805a4d0657ec2f17542f2e6ad23ebdb4
2016-03-21 18:43:14 +00:00
Alex Converse
109ef96a5f Merge "Add a placeholder forward buffered ANS coder." into nextgenv2 2016-03-21 18:41:32 +00:00
Debargha Mukherjee
1b17559327 Adds 1D transforms for ADST/FlipADST to make 16
Makes a set of 16 transforms total, adding all 1D
combinations of ADST and FlipADST, and removng all DST
transforms.

lowres, midres both improve by about 0.1% and hdres by
-0.378% in BDRATE but with fewer transforms that are also
simpler.

Further experiments to continue later.

Change-Id: I7348a4c0e12078fdea5ae3a2d36a89a319ffcc6e
2016-03-21 11:19:36 -07:00
Yaowu Xu
c96c3fa2b3 Properly set rate_nocoef when pallete mode is used
Change-Id: Iff04c82b3d3b5cf2c7700717c3c3d678bbbb9f9b
2016-03-21 11:07:53 -07:00
Angie Chiang
abd447e339 mv vp10_fwd_txfm2d_#x# into vp10_rtcd.h
Change-Id: Iad7352698786791b0fd7c005a7edfd1724b71599
2016-03-21 10:51:54 -07:00
Angie Chiang
40ef86f27d Passing TXFM_TYPE instead of func pointer
This is to facilitate sse2 implementation

Change-Id: Id2f53e83c5508c4445d9b1bba00a649cb4da6b74
2016-03-21 10:50:59 -07:00
Jingning Han
66df6e7c7f Refactor sub8x8 reference motion vector search function
Rework the interface to allow codec store the reference motion
vector list information for coding process.

Change-Id: I47e26587f6c0808655e4626f316ec7614a7ad8ed
2016-03-21 10:02:08 -07:00
Jingning Han
5c9d315572 Rework the DRL syntax entropy coding system
This commit re-designs the probability model for the syntax elements
of the dynamic motion vector referencing system.

Change-Id: Icfb8203c7e8f64e10e99f5890e25e6f6b15fe5d1
2016-03-21 09:52:33 -07:00
Jingning Han
4914ae4622 Merge "Enable dynamic motion vector referencing for newmv mode" into nextgenv2 2016-03-19 00:40:04 +00:00
Debargha Mukherjee
6074403d2d Merge "Add ext_partition_types config option" into nextgenv2 2016-03-18 23:51:55 +00:00
Debargha Mukherjee
3c065ac46a Merge "Refactor bsse and skip_txfm in MACROBLOCK." into nextgenv2 2016-03-18 23:51:40 +00:00
Debargha Mukherjee
05029a47a1 Merge "Refactor save_context restore_context in rd_pick_partition." into nextgenv2 2016-03-18 23:51:06 +00:00
Debargha Mukherjee
0ac48f8f65 Merge "Refactor mbmi->inter_tx_size to 2D array." into nextgenv2 2016-03-18 23:50:25 +00:00
Sarah Parker
0adb805db9 Merge "Remove prune three from speed features" into nextgenv2 2016-03-18 21:29:24 +00:00
Sarah Parker
fab5454a16 Remove prune three from speed features
Not getting good results for this feature, will try again
when transforms are frozen.

Change-Id: Id12396786cb9369ad34d0bd845f7beba3a037726
2016-03-18 13:06:40 -07:00
Alex Converse
44ce668063 Add a placeholder forward buffered ANS coder.
This buffered ANS coder supports coding the symbols in forward (decode)
order. Rather than windowing or growing the buffer, right now this
coder merely asserts that the buffer will never overflow.

This approach should allow ANS to be used as a drop in replacement for
other entropy coders rather than requiring complicated reversal logic
throughout the codebase.

Change-Id: I6689271233d0e22fea94c51950415dad5af96598
2016-03-18 19:33:45 +00:00
Yaowu Xu
42e5c2ad8a Two minor logic fixes
Change-Id: I1d5624fb2f34f87a55613036851034ec7c2d0b76
2016-03-18 11:48:19 -07:00
Marco Paniconi
bfc2a7e3a0 Merge "vp9: Improvement to skin detection." 2016-03-18 17:58:03 +00:00
Jingning Han
93748c3e4f Enable dynamic motion vector referencing for newmv mode
This commit enables the dynamic motion vector predictor for NEWMV
mode. It allows the codec to select the best motion vector predictor
in a rate-distortion optimization framework for motion vector
residual coding. The compression performance is improved:
lowres  0.14%
midres  0.27%
hdres   0.24%

Change-Id: I6a601c74eb6cb0b71a613336d40363359f2edecd
2016-03-18 09:51:37 -07:00
hui su
30d2d9783e Small speed up for super_block_uvrd
Eearly termination if U plane RD cost is large enough.

No notable compression performance changes.

Change-Id: Ieeefc5859cb55d94391b502b4bd840bc8bcb2578
2016-03-18 09:28:10 -07:00
Marco
a3562b60d5 vp8-denoiser: Update on the sum_diff threshold.
Change-Id: I0d459c7ba358da287aff1c706279603d6d4d3c48
2016-03-18 08:39:42 -07:00
Geza Lore
f8cfb72a32 Refactor bsse and skip_txfm in MACROBLOCK.
Simple refactoring to 2 dimensional arrays, in preparation for 128
wide superblocks.

Change-Id: I40d447bd9fbd4f755534ea3cc82fc8f4676cea07
2016-03-18 15:30:10 +00:00
Geza Lore
efe7d4e5a2 Refactor mbmi->inter_tx_size to 2D array.
This is in preparation of increasing the superblock size.

Change-Id: I9197e397399fbe8aec1178a45ea0337dd90412d7
2016-03-18 15:30:09 +00:00
Julia Robson
8bc8f2711a Add ext_partition_types config option
Change-Id: I91d280a64d1da77be31004ea91d08d1a70529e42
2016-03-18 15:22:42 +00:00
Hui Su
cb61bfa695 Merge "Minor bug fix in ex-intra experiment" into nextgenv2 2016-03-18 05:01:56 +00:00
James Zern
e1ad39d754 Merge "altref_test: mark AltRefForcedKeyTest as large" 2016-03-18 02:38:14 +00:00
hui su
507c55b227 Minor bug fix in ex-intra experiment
No performance change observed from borg tests.

Change-Id: I20c232c5dde8cfc84452a4c7185389bd8b812ffd
2016-03-17 19:37:21 -07:00
James Zern
0dcd21fb1b altref_test: mark AltRefForcedKeyTest as large
Change-Id: I2bbd7cd2f3b22d3dbfd40d9af430a5d276cd1855
2016-03-17 18:46:10 -07:00
Marco
ce39add465 vp9: Improvement to skin detection.
Add consec_zeromv to skin detection.
Reduces false detection in steady background areas.

Change-Id: Ic31c831537d29f082f58477f82ed78f313d7dd30
2016-03-17 16:26:10 -07:00
Sarah Parker
99235fd908 Merge "Fix hbd segfault for prune_one and prune_two" into nextgenv2 2016-03-17 22:40:47 +00:00