8563 Commits

Author SHA1 Message Date
Scott LaVarnway
66129c7214 Merge "VP9: Refactor dec_build_inter_predictors_sb()" 2016-01-28 12:31:22 +00:00
Hui Su
cdb141dd94 Merge "Fix some typos." 2016-01-28 01:04:50 +00:00
hui su
5afc4e4c77 Fix some typos.
Change-Id: I32aacd014df6c927cf2893dc096cbe6ec7604b9b
2016-01-27 16:12:49 -08:00
Marco Paniconi
ced5cea41c Merge "vp9-aqmode=3: Limit on period for golden update." 2016-01-27 21:38:35 +00:00
Marco
fab630fac9 vp9-aqmode=3: Limit on period for golden update.
For aqmode=3, golden period update is set based on period of cyclic refresh.
Put a limit on max golden period update, for now set to 40.
And fix comment.

Change-Id: Icb61dd87c796cce2a5f5f7331c6a129540994696
2016-01-27 12:07:49 -08:00
Alex Converse
d13385cee7 Switch to 9-bit rate cost constants built on a 256 probability denominator.
-.220 BDRATE derf: https://x20web.corp.google.com/~aconverse/results/cost256_derf.html
-.675 BDRATE hevcmr: https://x20web.corp.google.com/~aconverse/results/cost256_hevcmr.html

Change-Id: Ifb1646d8ce65ffe0eff9953a911b1b88735b335f
2016-01-27 19:34:30 +00:00
Scott LaVarnway
7203100127 VP9: Refactor dec_build_inter_predictors_sb()
Change-Id: I336fe2006288214977b5ee854124ee7b5bba5796
2016-01-27 07:37:59 -08:00
Alex Converse
4b2b90fed3 vp9: Be more responsive to massive overshoot.
Limit oscilation detection in the case where overshoot is very very
large.

This keeps the 9-bit cost patch from breaking the DownUp reisze test.
The patch pushed us to an 11% undershoot right before a scene cut
causing a 1200% overshoot. (Whereas before we were undershooting by
only 6% before overshooting by 1200%).

Change-Id: Id90ccfab8aba872ccadc45b73b3bb097b895677f
2016-01-25 12:03:50 -08:00
Zoe Liu
9e612763f0 Cleaned a code in define_gf_group() for firstpass
Change-Id: I0b8eff9e74e3446024482d011ec4fb28b19136d3
2016-01-25 09:38:45 -08:00
Alex Converse
27c13712c9 Merge "Short circuit flat blocks when coding screen content at realtime speed." 2016-01-23 02:04:37 +00:00
Scott LaVarnway
be916257bd Merge "VP9: Do not set up/left available in vp9_first_pass()" 2016-01-22 21:53:26 +00:00
Alex Converse
7da6324cab Short circuit flat blocks when coding screen content at realtime speed.
In inter mode search skip all modes except NEARESTMV and DC_PRED.

10% less encode latency for large frames using the chromium remoting_perftests.

+0.313% BDRATE on the screencast set at speed -6.

Change-Id: Ib97a39dd8bcdeab545509e0e02d78ce7033f8c63
2016-01-22 12:40:45 -08:00
Scott LaVarnway
78fadcd063 VP9: Do not set up/left available in vp9_first_pass()
These values are set in set_mi_row_col()

Change-Id: Ie44c9d2dcb79797a8473b5fc29394277a7117547
2016-01-22 11:30:51 -08:00
Yaowu Xu
2ab58d812f Fix a minor typo
a wrong variable.

Change-Id: I9fa02621dbdc508a12ba1ef9c8f98dbeab68e958
2016-01-22 10:57:16 -08:00
Yaowu Xu
307c84c352 Merge "Properly set segmentation for error-resilient mode" 2016-01-22 16:52:41 +00:00
Marco Paniconi
732242ab3d Merge "vp9 pickmode: Fix the shift on negative value." 2016-01-22 00:09:27 +00:00
Marco
dbc963a42f vp9 pickmode: Fix the shift on negative value.
Error only affected svc 1 pass mode, introduced in:
https://chromium-review.googlesource.com/#/c/319609/

Change-Id: Ifc078c82d38b742966a81baaf5ad532f7dbc13a4
2016-01-21 15:16:52 -08:00
Alex Converse
a61ac8e2e7 Merge "Remove the vestigal skip_eob feature from tokenization." 2016-01-21 23:11:14 +00:00
James Zern
bd4501fe28 vp9_aq_cyclicrefresh: fix double->float warning
Change-Id: I39d3a150de9a77967a4e25ca89d2eda51fd18d47
2016-01-21 14:07:33 -08:00
Alex Converse
4326cffa65 Merge "Tie the bit cost scale to a define." 2016-01-21 19:17:56 +00:00
Marco
a925173da0 vp9-aqmode=3: Reduce condition below which we turn off delta-qp.
Add TODO to consider turning-off more smoothly.

Change-Id: Id6dd4c5c515f5b09c388af965eb27dbe24924362
2016-01-20 20:26:40 -08:00
hui su
19de4d9408 Fix build with --enable-internal-stats
Change-Id: I9649647cc5755c8411ddd56f92e7f96d421c2663
2016-01-20 18:02:30 -08:00
Alex Converse
5bd99f83d9 Remove the vestigal skip_eob feature from tokenization.
Repack TOKENEXTRA fields.

Speed impact within measurment margin of error.

Change-Id: I9a6d1dde1bb4a0766b02d0cb74c871ddde907cde
2016-01-20 17:13:59 -08:00
Marco
abf58ecf6a Vidyo patch: Changes to the scalability code.
Changes to mode selection for 1 pass SVC mode:
use base layer motion vector, changes to intra-prediction.

Change-Id: I3e883aa04db521cfa026a0b12c9478ea35a344c9
2016-01-20 08:53:51 -08:00
Scott LaVarnway
a7e0b1ea01 Merge "VP9: Eliminate MB_MODE_INFO" 2016-01-20 12:19:27 +00:00
Scott LaVarnway
5232326716 VP9: Eliminate MB_MODE_INFO
Change-Id: Ifa607dd2bb366ce09fa16dfcad3cc45a2440c185
2016-01-19 16:40:20 -08:00
Alex Converse
cb785ade5b Merge "Deduplicate sign cost for ONE/TWO/THREE/FOUR tokens" 2016-01-19 20:04:28 +00:00
Alex Converse
269428e35c Tie the bit cost scale to a define.
This is a pure-refactor in preparation to potentially raise the bit-cost
resolution.

Verified at good speed 0 and rt speed -6.

Change-Id: I5347e6e8c28a9ad9dd0aae1d76a3d0f3c2335bb9
2016-01-15 15:59:31 -08:00
Marco
c0307e6cea vp9-denoiser: Set motion threshold for skin_map to 0.
More aggresive on avoiding denoising on skin.
May supplement this later by adding condtion onn consec_zeromv.

Change-Id: Ied92b332f9b24e821d2009f81d1565758588d9a5
2016-01-15 15:04:14 -08:00
Alex Converse
dea6f5217e Deduplicate sign cost for ONE/TWO/THREE/FOUR tokens
Change-Id: I9c383d604dfd240e38b198ac5bf86ddd3456f442
2016-01-15 13:56:34 -08:00
Debargha Mukherjee
dcc0c894c4 Merge "Adding an aq mode for 360 videos" 2016-01-14 16:13:56 +00:00
Scott LaVarnway
d4bc17d696 Merge "VP9: inline vp9_use_mv_hp()" 2016-01-14 13:36:40 +00:00
Yaowu Xu
0dfe9618c3 Properly set segmentation for error-resilient mode
Change-Id: I0c85b637e51dc949a4e919f10a78870f23c2ca6a
2016-01-13 17:27:17 -08:00
Debargha Mukherjee
02345be986 Adding an aq mode for 360 videos
Different quality levels are used for different regions in
the frame depending on how far they are vertically from the
center. Specifically, three segments are used based on the
mi_row index with respect number to the number of mi_rows in
the frame.

Change-Id: Ifc8b777bc58ea8521dffc4640360c67d99f8d381
2016-01-13 16:17:37 -08:00
Scott LaVarnway
a85e552d95 VP9: Remove decoder args from find_mv_refs_idx()
The decoder does not use this function.

Change-Id: Ie67f909c0f4108ef286789c70df867d4b960a780
2016-01-13 13:30:40 -08:00
Scott LaVarnway
de993a847f VP9: inline vp9_use_mv_hp()
Change-Id: Ib275bfc4c29c572d6c70e5ec6dbfc241590d3e3e
2016-01-13 08:02:05 -08:00
Scott LaVarnway
15939cb2d7 Merge "VP9: Eliminate unnecessary nearest/near searches" 2016-01-12 20:00:59 +00:00
Scott LaVarnway
d8aa40634a VP9: Eliminate unnecessary nearest/near searches
Prior to this patch, read_inter_block_mode_info() would
find the nearmv and nearestmv for all modes.  Now it does not
search for ZEROMV modes and breaks out early for NEARMV and
NEWMV modes.

Change-Id: Ifa7b1eaf58bb03b9c7792ea5012fef477527d0fd
2016-01-12 05:09:06 -08:00
Yaowu Xu
4893d28186 Merge "Enable encoder to avoid 8x4 or 4x8 partitions" 2016-01-07 23:00:00 +00:00
Yaowu Xu
017fea7cfb Merge "Fix a typo" 2016-01-07 20:26:09 +00:00
Yaowu Xu
9cac17d157 Enable encoder to avoid 8x4 or 4x8 partitions
This commit enables encoder to avoid 8x4 and 4x8 partitions for
scaled reference frames when libvpx is configured and built with
--enable-better-hw-compatibility

Change-Id: I02ad65c386f5855f4325d72570c49164ed52f413
2016-01-07 09:53:14 -08:00
Yaowu Xu
650a2d7628 Fix a typo
Change-Id: I12de2dd5e5f375551804166188d76a9ad8067b41
2016-01-07 09:29:34 -08:00
Marco
b520882f0e vp9-svc: Fix to avoid msan unitialized value.
Move the logic for forcing zero_mode after the
(ref_frame & flag_list) check.
This was causing an memory leak under msan:
https://bugs.chromium.org/p/webrtc/issues/detail?id=5402

Change-Id: Ie9d243369f8ed7c332f46178275945331da4fd85
2016-01-06 11:34:57 -08:00
Yaowu Xu
2bd4f44409 Assert no mv clamping for scaled references
Under --enable-better-hw-compabibility, this commit adds the asserts
that no mv clamping is applied for scaled references, so when built
with this configure option, decoder will assert if an input bitstream
triggger mv clamping for scaled reference frames.

Change-Id: I786e86a2bbbfb5bc2d2b706a31b0ffa8fe2eb0cb
2016-01-05 14:55:05 -08:00
Yaowu Xu
ce6d3f1de4 Merge "Assert no 8x4/4x8 partition for scaled references" 2016-01-05 20:35:46 +00:00
Yaowu Xu
03a021a6fc Assert no 8x4/4x8 partition for scaled references
This commit adds a new configure option:

--enable-better-hw-compatibility

The purpose of the configure option is to provide information on known
hardware decoder implementation bugs, so encoder implementers may
choose to implement their encoders in a way to avoid triggering these
decoder bugs.

The WebM team were made aware of that a number of hardware decoders
have trouble in handling the combination of scaled frame reference
frame and 8x4 or 4x8 partitions. This commit added asserts to vp9
decoder, so when built with above configure option, the decoder can
assert if an input bitstream triggers such decoder bug.

Change-Id: I386204cfa80ed16b50ebde57f886121ed76200bf
2016-01-04 18:33:37 -08:00
Marco
a8b7c6aad3 vp9-skin detection: Refactoring.
Add function to compute skin map for a given block, as its
used in several places (cyclic refresh, noise estimation, and denoising).

Change-Id: Ied622908df43b6927f7fafc6c019d1867f2a24eb
2016-01-04 16:58:06 -08:00
Marco
e5dfca02a9 vp9-svc: Set initial values for ext_buffer/flag indices.
Set initial values for these parameters in the vp9_init_layer_context().

This also fixes an issue in the svc-bypass mode when frame flags are
passed via the vpx_codec_encode().

Change-Id: I0968f04672f8d3d2fe2cea6b8a23f79f80d7a8b1
2016-01-04 12:28:46 -08:00
Jingning Han
c84d3abeb8 Merge "Fix sub8x8 motion search on scaled reference frame" 2015-12-23 02:34:18 +00:00
Marco
b121a3e7b8 aq-mode=3: Don't reset segment if block is determined to be skin.
For coding block sizes <=16X16, if the block is determined to be skin,
then always allow for that block to be candidate for refresh. So if that
block happens to be on the boost segment(s), segment won't get reset to 0
and delta-q will be applied.

PSNR/SSIM metrics neutral (little/no change) on RTC clips.
Speed increase small/negligible (< 1%).
Some visual improvement on faces in a few RTC clips.

Change-Id: I6bf0fce6f39d820b491ce05d7c017ad168fce7d6
2015-12-22 10:23:44 -08:00