]> granicus.if.org Git - libvpx/log
libvpx
5 years agoChanges to rd_variance_adjustment()
Paul Wilkins [Thu, 28 Feb 2019 16:23:35 +0000 (16:23 +0000)]
Changes to rd_variance_adjustment()

Always calculate per block variance values vs per pixel.

Change-Id: I760b3ba1a250d7544813a1b93923eedc207cbd60

5 years agoChange to mode early breakout rules for FILM mode.
Paul Wilkins [Thu, 28 Feb 2019 14:10:12 +0000 (14:10 +0000)]
Change to mode early breakout rules for FILM mode.

The biggest offender in terms of preventing retention of film
grain in high rate film content is the use of DC-PRED mode.
Some of the directional modes whilst not strictly preserving
grain do better at at least preserving some texture.

This change blocks the early breakout of the rd loop based
on the reference frame giving the best result so far. In practice,
unless DC-PRED was chosen as the best mode so far, the other
directional intra modes would not even be considered.

As the film grain mode also tends to bias against DC-PRED (or
intra in general) this was pretty much blocking all use of directional
intra modes.

The patch also allows for a broader spectrum of DC modes at the
16x16 transform level than previously.

Change-Id: I860b7726ea9f5fcbb3ec1a90edbdd8cade2e8b28

5 years agoStore a group level noise metric from first pass.
Paul Wilkins [Thu, 28 Feb 2019 13:19:11 +0000 (13:19 +0000)]
Store a group level noise metric from first pass.

Adds a variable to GF group structure to store a noise
energy metric for the current group that can be used
in things like film grain retention code.

Change-Id: I81b07630d3242f7928110f19a6c1ed4c86125f05

5 years agovp9-screen: Rework the mode skip logic for screen
Marco Paniconi [Sat, 9 Mar 2019 05:00:48 +0000 (21:00 -0800)]
vp9-screen: Rework the mode skip logic for screen

Don't force skip of zero-golden reference when
zero_temp_sad_source = 0, as it be may the
inter-layer reference. And remove the flatness conditon
when superblock is static.

Change-Id: I6b4b6eac0f6a2abc862c23d0e5467c7cf61995ef

5 years agoMerge "vp9-screen: Fix to screen wth layered encoding"
Marco Paniconi [Fri, 8 Mar 2019 19:38:43 +0000 (19:38 +0000)]
Merge "vp9-screen: Fix to screen wth layered encoding"

5 years agovp9-screen: Fix to screen wth layered encoding
Marco Paniconi [Fri, 8 Mar 2019 18:04:31 +0000 (10:04 -0800)]
vp9-screen: Fix to screen wth layered encoding

zero_temp_sad_source is only computed when
compute_source_sad_onepass and sf->use_source_sad are
on, which currently is only for the top layer of the
layered encoding. So qualify the usage of
zero_temp_sad_source on those flags.

This affects the quality/speed of the lower layers of
screen content mode when SVC (quality layers) are used.

Change-Id: I54167265a05a4b918ce015931375aa42d3e75cf5

5 years agoMerge changes Ib8e635fc,If868f67c,Ibfeae411
Angie Chiang [Fri, 8 Mar 2019 18:31:57 +0000 (18:31 +0000)]
Merge changes Ib8e635fc,If868f67c,Ibfeae411

* changes:
  Include mv_mode_arr info in dump_tpl_stats
  Include gf_frame_offset in dump_tpl_stats
  Refactor dump_tpl_stats

5 years agoMerge "Optimize SSE4_1 lowbd temporal filter implementation"
Chi Yo Tsai [Fri, 8 Mar 2019 17:46:08 +0000 (17:46 +0000)]
Merge "Optimize SSE4_1 lowbd temporal filter implementation"

5 years agoMerge "vp9 svc: add simulcast mode when inter-layer pred is off."
Jerome Jiang [Fri, 8 Mar 2019 03:41:44 +0000 (03:41 +0000)]
Merge "vp9 svc: add simulcast mode when inter-layer pred is off."

5 years agoOptimize SSE4_1 lowbd temporal filter implementation
chiyotsai [Mon, 4 Mar 2019 18:40:14 +0000 (10:40 -0800)]
Optimize SSE4_1 lowbd temporal filter implementation

 - Change some unaligned loads to aligned loads
 - Preload filter weights

BUG=webm:1591

Change-Id: I4e5e755e1fa5613d1c14191265bf80b0bfd0b75c

5 years agovp9 svc: add simulcast mode when inter-layer pred is off.
Jerome Jiang [Mon, 4 Mar 2019 23:51:22 +0000 (15:51 -0800)]
vp9 svc: add simulcast mode when inter-layer pred is off.

Force all upper spatial layers to be key frame if the base layer is key.
Mode only works for inter-layer pred=off and non-flexible mode.

Add flag to write out bitstream for each spatial layer in example
encoder.

Change-Id: I5db4543cf8697544ae49464f2157e692640d5256

5 years agoMerge "Add SSE4_1 highbd version of temporal filter"
Chi Yo Tsai [Thu, 7 Mar 2019 22:24:26 +0000 (22:24 +0000)]
Merge "Add SSE4_1 highbd version of temporal filter"

5 years agovp9-svc: Fix to sample encoder for 1 layer
Marco Paniconi [Thu, 7 Mar 2019 20:24:11 +0000 (12:24 -0800)]
vp9-svc: Fix to sample encoder for 1 layer

Fix to vp9_spatial_svc_encoder to run case of
1 spatial, 1 temporal layer.

Change-Id: I93675c3c4bd2c55cb1c971679588525a8e5b889d

5 years agovp9-rtc: Improve mode check on flat blocks in screen mode
Marco Paniconi [Thu, 7 Mar 2019 04:28:26 +0000 (20:28 -0800)]
vp9-rtc: Improve mode check on flat blocks in screen mode

For nonrd-pickmode in screen content mode: modify logic for
inter and intra mode check for spatially flat blocks.
Condition skip of non-zero/zero inter mode based on
zero_temp_sad_source, and force intra/DC check regardless.

Reduces artifacts in scrolling motion.

Change-Id: Iee75cd19d03296afeb649c5bce628806103769ae

5 years agoMerge "add -Wmissing-prototypes"
Johann Koenig [Wed, 6 Mar 2019 23:59:20 +0000 (23:59 +0000)]
Merge "add -Wmissing-prototypes"

5 years agovp9-denoiser: Bias to last for golden long term
Marco Paniconi [Wed, 6 Mar 2019 18:40:42 +0000 (10:40 -0800)]
vp9-denoiser: Bias to last for golden long term

If golden referene is selected as long-term reference,
bias the denoiser filter to use last reference.
Fixes visual artifact.

And reduce the thresh_svc_golden, which was used
to reduce the artifact occurrence.

Change-Id: I08f24160ca11bd8f5f70acaefe989d5f92988132

5 years agoInclude mv_mode_arr info in dump_tpl_stats
Angie Chiang [Wed, 6 Mar 2019 02:13:45 +0000 (18:13 -0800)]
Include mv_mode_arr info in dump_tpl_stats

Change-Id: Ib8e635fc7522d27ff7fdb62661597115e5bbc9b8

5 years agoInclude gf_frame_offset in dump_tpl_stats
Angie Chiang [Tue, 5 Mar 2019 23:13:41 +0000 (15:13 -0800)]
Include gf_frame_offset in dump_tpl_stats

Change-Id: If868f67ccc1c73189bc4c139a807d7341e59b668

5 years agoMerge "vp9 svc example: use CONFIG_VP9_DECODER guarding decoding."
Jerome Jiang [Tue, 5 Mar 2019 22:50:39 +0000 (22:50 +0000)]
Merge "vp9 svc example: use CONFIG_VP9_DECODER guarding decoding."

5 years agoRefactor dump_tpl_stats
Angie Chiang [Tue, 5 Mar 2019 19:59:00 +0000 (11:59 -0800)]
Refactor dump_tpl_stats

Only dump stats when ref frame exists.
Dump ref_frame_idx

Change-Id: Ibfeae4111697b8ce97d7fe9b56c2487623615748

5 years agovp9 svc example: use CONFIG_VP9_DECODER guarding decoding.
Jerome Jiang [Tue, 5 Mar 2019 19:11:16 +0000 (11:11 -0800)]
vp9 svc example: use CONFIG_VP9_DECODER guarding decoding.

Change-Id: I91f2955f2936303c3e09e9b2dc60e32305ebae17

5 years agoAdd rd_diff_arr to store future blocks' rd diff
Angie Chiang [Wed, 13 Feb 2019 02:58:07 +0000 (18:58 -0800)]
Add rd_diff_arr to store future blocks' rd diff

Change-Id: Id996c1a427fb22a32b7a521cadf9f1523e5cf068

5 years agoMerge "Fix compile error when DUMP_TPL_STATS is 1"
Angie Chiang [Tue, 5 Mar 2019 18:51:42 +0000 (18:51 +0000)]
Merge "Fix compile error when DUMP_TPL_STATS is 1"

5 years agoadd -Wmissing-prototypes
Johann [Tue, 5 Mar 2019 00:55:10 +0000 (16:55 -0800)]
add -Wmissing-prototypes

clang treats -Wmissing-declarations differently than gcc. This
provides similar coverage for clang.

Fix vpx_clear_system_state() warning on 32bit builds:
  note: this declaration is not a prototype; add 'void' to make it a
  prototype for a zero-parameter function

Change-Id: I5a424bc38d47c0a3dc751d65c1efea5733907785

5 years agoFix compile error when DUMP_TPL_STATS is 1
Angie Chiang [Tue, 5 Mar 2019 01:19:22 +0000 (17:19 -0800)]
Fix compile error when DUMP_TPL_STATS is 1

Change-Id: Ie859c2c8e377b6b0982293833ddc657855b18091

5 years agovp9-rtc: Speed feature changes to speed 9
Marco Paniconi [Mon, 4 Mar 2019 19:28:52 +0000 (11:28 -0800)]
vp9-rtc: Speed feature changes to speed 9

Compared to speed 8 for low resolutions:
quality loss is ~8-10%, and encoder fps is ~15%
higher on ARM for 1 thread.

Change-Id: I4f12390d2917a5c4045114ef81a05edb2a3b9c96

5 years agoAdd SSE4_1 highbd version of temporal filter
chiyotsai [Fri, 1 Mar 2019 01:10:54 +0000 (17:10 -0800)]
Add SSE4_1 highbd version of temporal filter

The SSE4_1 version of temporal filter does not distinguish between bd 10
and bd 12.

Speed up:
 Function Level:
       | !SS_X |  SS_X
 !SS_Y | 6.44X | 6.37X
  SS_Y | 6.56X | 6.63X

 Video Level:
  2.5% speed up on basketballpass_240p over 150 frames on speed 1,
  bitdepth 10, auto-alt-ref=1

BUG=webm:1591

Change-Id: I49aa2ed4acfe80a8d627038322de66cbe691296e

5 years agovp9-rtc: Adjust force split logic for screen mode
Marco Paniconi [Sat, 2 Mar 2019 06:03:10 +0000 (22:03 -0800)]
vp9-rtc: Adjust force split logic for screen mode

In variance partition for screen content mode:
force split to 32x32 if source pre-process detects
non-zero temporal sad.
Reduce artifacts in scroll motion content.

Change-Id: Ifbe2b500eb03ae853faa28a045ce4f1185443939

5 years agovp9-rtc: Fix for scroll motion for rtc
Marco Paniconi [Fri, 1 Mar 2019 19:18:36 +0000 (11:18 -0800)]
vp9-rtc: Fix for scroll motion for rtc

Increase threshold to detect frames with high
num of motion blocks, and fix conditions to detect
horiz & vert scroll and avoid split below 16x16 blocks
in variance partition.

Reduces artifacts in horizonal scroll screenshare testing.

Change-Id: Icf5b87f69971d7331c660fc2727c9246c6cbf8b5

5 years agoMerge "Strengthened film grain setting."
Paul Wilkins [Fri, 1 Mar 2019 13:42:48 +0000 (13:42 +0000)]
Merge "Strengthened film grain setting."

5 years agoMerge "Fix RD multiplier bug impacting AQ1."
Paul Wilkins [Fri, 1 Mar 2019 13:42:11 +0000 (13:42 +0000)]
Merge "Fix RD multiplier bug impacting AQ1."

5 years agovp9-rtc: Set init noise level based on resoln
Marco Paniconi [Fri, 1 Mar 2019 03:58:08 +0000 (19:58 -0800)]
vp9-rtc: Set init noise level based on resoln

Avoid the kLow init level for lower resolns.

Change-Id: I1c9968a6891668b5887e35695f2a44158a4b3a18

5 years agovp9-rtc: Reduce thresholds for skip golden
Marco Paniconi [Fri, 1 Mar 2019 01:53:18 +0000 (17:53 -0800)]
vp9-rtc: Reduce thresholds for skip golden

For nonrd-pickmode CBR mode: reduce the skip
golden ref thresholds, to reduce some psnr
regression in some clips, while still effectively
reducing flashing block artifact occurrence.

Change-Id: I468dcf5354411aeb54ac3ef56c6fb73267d93fde

5 years agoMerge "Set segment ID from ROI map if enabled."
Jerome Jiang [Thu, 28 Feb 2019 19:00:25 +0000 (19:00 +0000)]
Merge "Set segment ID from ROI map if enabled."

5 years agoSet segment ID from ROI map if enabled.
Jerome Jiang [Tue, 26 Feb 2019 19:01:23 +0000 (11:01 -0800)]
Set segment ID from ROI map if enabled.

Segment ID was overwritten.

Change-Id: I99603dce02a94f3a9076d1743b108a81289ad0e5

5 years agoMerge "vp9-rtc: Change init level of denoiser & noise level"
Marco Paniconi [Thu, 28 Feb 2019 17:21:24 +0000 (17:21 +0000)]
Merge "vp9-rtc: Change init level of denoiser & noise level"

5 years agoStrengthened film grain setting.
Paul Wilkins [Fri, 7 Dec 2018 17:46:34 +0000 (17:46 +0000)]
Strengthened film grain setting.

This patch increases the preference for maintaining similar variance
between source and reconstruction and thus helps improve film grain
retention.

The changes are only active when film mode is selected

Change-Id: I3bc082dca678a0f32ec00f30f5d90d0f95ca2381

5 years agoFix RD multiplier bug impacting AQ1.
paulwilkins [Tue, 26 Feb 2019 12:34:07 +0000 (12:34 +0000)]
Fix RD multiplier bug impacting AQ1.

Change to the default RD multiplier computation in set_segment_rdmult()

The default here is wrong as for modes like AQ 1 setting the rdmult based on the
segment ID for bsize will tend to result in the RD loop favoring partition sizes where
the resulting segment assignment has the lowest Q, as these partition sizes will be
then evaluated with a lower value of rdmult. For a valid rd comparison between
partition sizes within a single SB64 we need to use the same value of rdmult.

This change fixes an observed issue with AQ 1 where almost all the blocks were being
assigned to segment 0.

Change-Id: Ibf87e8ca60bca45b8fee866ac6fd53feae11dab4

5 years agoMerge "Change to direction of scan for GF only group boost."
Paul Wilkins [Thu, 28 Feb 2019 12:58:20 +0000 (12:58 +0000)]
Merge "Change to direction of scan for GF only group boost."

5 years agovp9-rtc: Change init level of denoiser & noise level
Marco Paniconi [Thu, 28 Feb 2019 00:19:33 +0000 (16:19 -0800)]
vp9-rtc: Change init level of denoiser & noise level

Change to init/reset level of the denoiser from
kDenLow to kDenMedium, and the init noise level to kLow.
This affects the denoiser level during the initialization
stage of the noise estimation.

Improves denoising for noisy content during init stage of
noise estimation, with little effect for low noise/clean content.

Change-Id: I247a17b0f01f646fc2e91a4a070ad69bdb788cae

5 years agoMerge "vp9-rtc: Add cyclic_refresh condition to segment reset"
Marco Paniconi [Wed, 27 Feb 2019 22:45:56 +0000 (22:45 +0000)]
Merge "vp9-rtc: Add cyclic_refresh condition to segment reset"

5 years agoMerge "vp9: Remove unused function in cyclic refresh"
Marco Paniconi [Wed, 27 Feb 2019 22:08:09 +0000 (22:08 +0000)]
Merge "vp9: Remove unused function in cyclic refresh"

5 years agovp9: Remove unused function in cyclic refresh
Marco Paniconi [Wed, 27 Feb 2019 20:06:45 +0000 (12:06 -0800)]
vp9: Remove unused function in cyclic refresh

Change-Id: I4b1d02c661ccbad2a1e346df623e78334a3a3a39

5 years agovp9-rtc: Add cyclic_refresh condition to segment reset
Marco Paniconi [Wed, 27 Feb 2019 19:56:53 +0000 (11:56 -0800)]
vp9-rtc: Add cyclic_refresh condition to segment reset

In non-rd pickmode for screen content:
this logic to reset segment should only be for cyclic_refresh
mode on, so add that condition explicitly.

There may be other uses of segments, like ROI, so we
should condition this reset logic on cyclic_refresh,
as it was intended for that mode only.

Change-Id: I954e6cee968fbca35b34286c4a7ca2531c8e9823

5 years agovp9-rtc: Modify skip golden mode check for 1 layer
Marco Paniconi [Wed, 27 Feb 2019 17:28:43 +0000 (09:28 -0800)]
vp9-rtc: Modify skip golden mode check for 1 layer

For real-time CBR mode: golden reference mode testing is
skipped under certain conditons based on sse of zero-last mode.
This was done for svc mode. Here we add similar condition
for non-svc/1 layer encoding.

Reduces flashing block artifacts that can occur in background
areas with noise.

Change-Id: I93f71ea9507af8c9153fc6c0ba7dcc7a0fa8810d

5 years agoMerge "vp9-rtc: Fix to Q clamp in adjust_q_cbr"
Marco Paniconi [Mon, 25 Feb 2019 04:43:13 +0000 (04:43 +0000)]
Merge "vp9-rtc: Fix to Q clamp in adjust_q_cbr"

5 years agovp9-rtc: Fix to Q clamp in adjust_q_cbr
Marco Paniconi [Mon, 25 Feb 2019 03:02:14 +0000 (19:02 -0800)]
vp9-rtc: Fix to Q clamp in adjust_q_cbr

For CBR mode: clamp the Q to worst/best quality in
adjust_q_cbr().

Under certain conditions, when the worst/best quality is
suddenly changed by a large amount mid-stream, the Q
adjustment from the final Q from adjust_q_cbr may not respect
the worst/best qualiy limits.

Change-Id: I3776129325d89882d422b22e6247d44660dd90ac

5 years agovp9-rtc: Decrease noise estimation thresh for kLow
Marco Paniconi [Sat, 23 Feb 2019 04:02:27 +0000 (20:02 -0800)]
vp9-rtc: Decrease noise estimation thresh for kLow

Increases denoising for noisy content.

Change-Id: Iff8573f8dca7b177ef53ee6682d691e6cd8e2740

5 years agoFix 32-bit unsigned integer overflow in block_variance
kyslov [Fri, 22 Feb 2019 22:15:22 +0000 (14:15 -0800)]
Fix 32-bit unsigned integer overflow in block_variance

When compiled for High Bitdepth SSE can overflow 32-bit unsigned
integer, so change it to 64 bit. Also fixing unit/int mismatch of sum

BUG=webm:1601

Change-Id: Ib576ed1d5579b0c2b4661058aa64119560b652bf

5 years agovp9-rtc: Adjust thresholds for noise estimation.
Marco Paniconi [Fri, 22 Feb 2019 03:32:07 +0000 (19:32 -0800)]
vp9-rtc: Adjust thresholds for noise estimation.

Lower the frame_motion and consec_zeromv thresholds,
this make the noise estimation and denoiser have more effect
on noisy clips.

Change-Id: I49cf5d78a04d00fcf8538bee6f3b2980efe6b3b5

5 years agoMerge "vp9: Enable ml based partition for speed>=8 low res."
Jerome Jiang [Wed, 20 Feb 2019 23:03:13 +0000 (23:03 +0000)]
Merge "vp9: Enable ml based partition for speed>=8 low res."

5 years agovpx_thread.h: remove unused sched_yield()
James Zern [Tue, 19 Feb 2019 01:03:54 +0000 (17:03 -0800)]
vpx_thread.h: remove unused sched_yield()

usage was removed with:
c1b024b48 Modify map read/write to sync logic in row_mt case

Change-Id: I515fe397083079a4f11702e67c322fd04bdcf410

5 years agoMerge "Fix integer overflow issue in bits allocated"
Ranjit Kumar Tulabandu [Wed, 20 Feb 2019 04:35:35 +0000 (04:35 +0000)]
Merge "Fix integer overflow issue in bits allocated"

5 years agoDisable encoder builds when checking coeff ranges
Yaowu Xu [Tue, 19 Feb 2019 21:41:37 +0000 (13:41 -0800)]
Disable encoder builds when checking coeff ranges

BUG=webm:1031

Change-Id: I28f4e8cdec170393b2d22cd8cb0b73a32204e09c

5 years agovp9: Enable ml based partition for speed>=8 low res.
Jerome Jiang [Tue, 19 Feb 2019 17:08:50 +0000 (09:08 -0800)]
vp9: Enable ml based partition for speed>=8 low res.

~10% speed up with no quality change for speed 8.
7% quality gain for speed 9 with no speed change.

Change-Id: I7eaaa4b82f7b082c9b15aa1d7624765ecc5082e7

5 years agoadded error messages in vpx_video_reader_open().
Aidan Welch [Sat, 5 Jan 2019 09:51:24 +0000 (04:51 -0500)]
added error messages in vpx_video_reader_open().

Change-Id: I3e521b62a2f99902c4be80fe25d3869121673e43

5 years agoFix compile warnings in non-greedy-mv
Angie Chiang [Sat, 9 Feb 2019 01:48:57 +0000 (17:48 -0800)]
Fix compile warnings in non-greedy-mv

Change-Id: Ib2bd9a74473ccb00e9ad71e0b186c8ddc0ee7b3c

5 years agoOnly discount new mv mode when tpl model is ready
Angie Chiang [Sat, 9 Feb 2019 01:28:43 +0000 (17:28 -0800)]
Only discount new mv mode when tpl model is ready

Change-Id: I3326f0912627981fd604b16ddbf668d2262d4287

5 years agoCheck the new mv diff in discount_newmv_test()
Angie Chiang [Thu, 7 Feb 2019 02:21:07 +0000 (18:21 -0800)]
Check the new mv diff in discount_newmv_test()

Change-Id: I38c5d4de93bebfd3f46bcc01716a0cc4a76af950

5 years agoUse mv_mode_arr to decide the newmv discount place
Angie Chiang [Wed, 6 Feb 2019 21:52:48 +0000 (13:52 -0800)]
Use mv_mode_arr to decide the newmv discount place

Change-Id: I98c32aba4c9e81380b588dcdbfa991468487ce73

5 years agoFix the bug for feature_score computation
Angie Chiang [Fri, 8 Feb 2019 18:25:56 +0000 (10:25 -0800)]
Fix the bug for feature_score computation

The visited is not set to 1 after an item is pushed into the heap.
This may cause one item being pushed into the heap multiple
times, which may incur buffer overflow and memory corruption.

Change-Id: I443f1e5693856bb4066542403f98492d4daec69d

5 years agoMerge "vp9: ML var partition as speed feature & cleanup."
Jerome Jiang [Tue, 12 Feb 2019 23:24:48 +0000 (23:24 +0000)]
Merge "vp9: ML var partition as speed feature & cleanup."

5 years agovp8: Limit Q change for screen content CBR mode
Marco Paniconi [Tue, 5 Feb 2019 18:54:28 +0000 (10:54 -0800)]
vp8: Limit Q change for screen content CBR mode

Add last_q[] to layer context, and add limit on
Q change from previous layer/frame. For now put
hard limit of 12 for decrease.

For 1 pass CBR sreen content mode.

Change-Id: Ifb972c9b6831440c80b1cb07a054c577ece930ec

5 years agoMerge "Test decode and find mismatch in vp9 svc example encoder."
Jerome Jiang [Tue, 12 Feb 2019 17:45:16 +0000 (17:45 +0000)]
Merge "Test decode and find mismatch in vp9 svc example encoder."

5 years agoTest decode and find mismatch in vp9 svc example encoder.
Jerome Jiang [Sat, 9 Feb 2019 03:29:10 +0000 (19:29 -0800)]
Test decode and find mismatch in vp9 svc example encoder.

Also write it to opsnr.stt when internal stats is enabled.

Removed some redundant code in vpxenc.c and vp9cx_set_ref.c

Change-Id: I3700137fff0be92a23e4ab75713db72da1dc4076

5 years agovp9: ML var partition as speed feature & cleanup.
Jerome Jiang [Fri, 8 Feb 2019 23:11:28 +0000 (15:11 -0800)]
vp9: ML var partition as speed feature & cleanup.

Remove it from runtime flag.

Add new struct for rd ml partition.

BUG=webm:1599

Change-Id: I883edbba83c65b7e557b8832419e212cffc85997

5 years agovp8: Fix condition for update of last_pred_err_mb
Marco Paniconi [Mon, 11 Feb 2019 20:06:27 +0000 (12:06 -0800)]
vp8: Fix condition for update of last_pred_err_mb

For 1 pass cbr screen-content mode: quantity should
only be updated on delta frames.

Change-Id: I16fc47b2805c7527ab4ff25bd8b5a5bd9c2b8976

5 years agoMerge "refactor vp9 svc example encoder."
Jerome Jiang [Mon, 11 Feb 2019 17:42:53 +0000 (17:42 +0000)]
Merge "refactor vp9 svc example encoder."

5 years agorefactor vp9 svc example encoder.
Jerome Jiang [Fri, 8 Feb 2019 23:44:46 +0000 (15:44 -0800)]
refactor vp9 svc example encoder.

Put rc stats related code into a separate function.

Change-Id: I11808bb947079b5fd9e53dfa5894bf227ed0c4c6

5 years agoMerge changes Ibbe12dad,I4bf9e2ad
Angie Chiang [Sat, 9 Feb 2019 01:20:19 +0000 (01:20 +0000)]
Merge changes Ibbe12dad,I4bf9e2ad

* changes:
  Add tpl_bsize to VP9_COMP
  Compute future_rd_diff in predict_mv_mode

5 years agovp9 svc example encoder accept -o (--output) for output.
Jerome Jiang [Fri, 8 Feb 2019 23:44:46 +0000 (15:44 -0800)]
vp9 svc example encoder accept -o (--output) for output.

Make it same as vpxenc so easier to run on borg.

Change-Id: Ie19db6e828ced773cba9aef715c8fbd0f4715b27

5 years agoMerge "Fixing ClangTidy issues reported by downstream integration"
Fyodor Kyslov [Thu, 7 Feb 2019 23:37:33 +0000 (23:37 +0000)]
Merge "Fixing ClangTidy issues reported by downstream integration"

5 years agoFixing ClangTidy issues reported by downstream integration
kyslov [Thu, 7 Feb 2019 20:15:19 +0000 (12:15 -0800)]
Fixing ClangTidy issues reported by downstream integration

ClangTidy reported 16 issues. All are around typecasting and
straightforward

Change-Id: Ie8f9fc2ba7992dd44fef65b121fe65966a1a1297

5 years agoMerge "Refactor the model for rect partition pruning"
Hui Su [Thu, 7 Feb 2019 21:30:47 +0000 (21:30 +0000)]
Merge "Refactor the model for rect partition pruning"

5 years agoMerge "vp9: Write height and width to ivf header in SVC example encoder."
Jerome Jiang [Thu, 7 Feb 2019 19:31:50 +0000 (19:31 +0000)]
Merge "vp9: Write height and width to ivf header in SVC example encoder."

5 years agovp9: Write height and width to ivf header in SVC example encoder.
Jerome Jiang [Thu, 7 Feb 2019 18:38:14 +0000 (10:38 -0800)]
vp9: Write height and width to ivf header in SVC example encoder.

Write height and width of top layer to ivf header in SVC.

vpxdec Can't decode it correctly when output is y4m.

Change-Id: I9b2f1d54696611a30e252bdfd182897d191d92b5

5 years agoRefactor the model for rect partition pruning
Hui Su [Thu, 7 Feb 2019 04:09:33 +0000 (20:09 -0800)]
Refactor the model for rect partition pruning

Remove the block variance and skip flags from the input features. They
do not seem to reduce the average loss of the model. Also decrease the
number of hidden nodes. The model size is reduced significantly.

Compression quality and speed are both neutral.

Change-Id: Ic62f73c4f4c0a3148285f575747f0423ff568c64

5 years agoUse wide integer to avoid overflow
Yaowu Xu [Thu, 7 Feb 2019 00:02:39 +0000 (16:02 -0800)]
Use wide integer to avoid overflow

BUG=webm:1270

Change-Id: I7d56667d946196bbbe355303de805422e40b0763

5 years agoAdd tpl_bsize to VP9_COMP
Angie Chiang [Wed, 6 Feb 2019 02:44:00 +0000 (18:44 -0800)]
Add tpl_bsize to VP9_COMP

Change-Id: Ibbe12dade04b218a41de9b65bbedba0054a69d83

5 years agoCompute future_rd_diff in predict_mv_mode
Angie Chiang [Tue, 5 Feb 2019 22:45:09 +0000 (14:45 -0800)]
Compute future_rd_diff in predict_mv_mode

The future_rd_diff computes the future rd difference between
new mv mode and ref mv mode.

Change-Id: I4bf9e2ad34257ba9cfec95419c2c5eca469584e9

5 years agoMerge "No vpx_img_alloc for y4m input in example encoders."
Jerome Jiang [Wed, 6 Feb 2019 00:57:28 +0000 (00:57 +0000)]
Merge "No vpx_img_alloc for y4m input in example encoders."

5 years agoMerge "Fix VPX_KF_DISABLED."
Jerome Jiang [Wed, 6 Feb 2019 00:33:30 +0000 (00:33 +0000)]
Merge "Fix VPX_KF_DISABLED."

5 years agoMerge "enforce some c89 restrictions"
Johann Koenig [Tue, 5 Feb 2019 23:29:51 +0000 (23:29 +0000)]
Merge "enforce some c89 restrictions"

5 years agoFix VPX_KF_DISABLED.
Jerome Jiang [Tue, 5 Feb 2019 19:41:06 +0000 (11:41 -0800)]
Fix VPX_KF_DISABLED.

VP9 encoder still inserts key frame periodically when VPX_KF_DISABLED is
set in non SVC for 1-pass CBR.
BUG=webm:1592

Change-Id: Ie99d7c5b95230d739e263a2d87879693c53f620e

5 years agoMerge "Improve the partition split prediction model"
Hui Su [Tue, 5 Feb 2019 22:20:10 +0000 (22:20 +0000)]
Merge "Improve the partition split prediction model"

5 years agoNo vpx_img_alloc for y4m input in example encoders.
Jerome Jiang [Mon, 4 Feb 2019 19:08:21 +0000 (11:08 -0800)]
No vpx_img_alloc for y4m input in example encoders.

Y4M reader has its own allocation.

Change-Id: Ie02440a183126072ea773860f4e9dc9b412772f5

5 years agoenforce some c89 restrictions
Johann [Tue, 5 Feb 2019 02:18:11 +0000 (18:18 -0800)]
enforce some c89 restrictions

Block "for (int i;;)" style declarations.

Use --std=gnu89 to avoid enforcing c89-style comments.

Change-Id: Ia7d1405eac647d04e92513c047773695e8d7dc6e

5 years agoMerge "ppc: use c89 loop declaration"
Johann Koenig [Tue, 5 Feb 2019 21:51:03 +0000 (21:51 +0000)]
Merge "ppc: use c89 loop declaration"

5 years agoppc: use c89 loop declaration
Johann [Tue, 5 Feb 2019 20:20:54 +0000 (12:20 -0800)]
ppc: use c89 loop declaration

Change-Id: Ib8ca37f1b58e9903e7efa29689a0a49f14b4d73a

5 years agoMerge "vp8: Add extra conditon for overshoot-drop"
Marco Paniconi [Tue, 5 Feb 2019 18:30:57 +0000 (18:30 +0000)]
Merge "vp8: Add extra conditon for overshoot-drop"

5 years agoMerge "Add dist scale in get_mv_dist"
Angie Chiang [Tue, 5 Feb 2019 18:27:15 +0000 (18:27 +0000)]
Merge "Add dist scale in get_mv_dist"

5 years agoImprove the partition split prediction model
Hui Su [Fri, 1 Feb 2019 17:33:42 +0000 (09:33 -0800)]
Improve the partition split prediction model

Include the sizes of the above and left partition block as additional
features.

This affects speed 0 and 1.

Compression change is almost neutral(about 0.03% on average).

Average encoding speedup is 3~6% depending on QP and resolution.

Change-Id: I8bddfadf6072ae757c124da0819302850d8c6fe7

5 years agoFix an inline varible declaration in temporal filter
chiyotsai [Tue, 5 Feb 2019 02:31:12 +0000 (18:31 -0800)]
Fix an inline varible declaration in temporal filter

bug=webm:1595

Change-Id: I7fbb16444a8526eb9479007772fbf52b09ff8338

5 years agoMerge "Add operator<< to a struct in yuv_temporal_filter_test.cc"
Chi Yo Tsai [Mon, 4 Feb 2019 23:52:24 +0000 (23:52 +0000)]
Merge "Add operator<< to a struct in yuv_temporal_filter_test.cc"

5 years agovp8: Add extra conditon for overshoot-drop
Marco Paniconi [Mon, 4 Feb 2019 22:49:58 +0000 (14:49 -0800)]
vp8: Add extra conditon for overshoot-drop

For drop due to large overshoot feature (in 1 pass CBR):
add additional condition that current prediction error
is larger than that of last encoded frame. This make the
drop due to sudden overshoot more robust, and improves
rate convergence for steady hard content.

Change-Id: If20027d26b4dcd290e4f788ae8e2760d95b536a5

5 years agoAdd operator<< to a struct in yuv_temporal_filter_test.cc
chiyotsai [Mon, 4 Feb 2019 22:18:59 +0000 (14:18 -0800)]
Add operator<< to a struct in yuv_temporal_filter_test.cc

This should resolve valgrind's warning on aceessing uninitialized
values.

BUG=webm:1591

Change-Id: I678cadf448c12b598c9ea09490a7eb4e13e4118c

5 years agoSome cosmetic fixes to temporal filter
chiyotsai [Fri, 1 Feb 2019 05:39:19 +0000 (21:39 -0800)]
Some cosmetic fixes to temporal filter

BUG=webm:1591

Change-Id: I34fd7e6cbe6f3d5486a669d0895402fd21de7641

5 years agoMerge remote-tracking branch 'origin/northernshoveler' into HEAD
Johann [Mon, 4 Feb 2019 19:46:43 +0000 (11:46 -0800)]
Merge remote-tracking branch 'origin/northernshoveler' into HEAD

BUG=webm:1573

Change-Id: Ie92df3adfac44d7e9c143994ef4f69cd1a04e4b8

5 years agoRelease v1.8.0 Northern Shoveler northernshoveler v1.8.0
Johann [Fri, 1 Feb 2019 21:49:00 +0000 (13:49 -0800)]
Release v1.8.0 Northern Shoveler

BUG=webm:1573

Change-Id: I2884d0d8198f937a9d14428cc9f5f7e86f4ec450

5 years agoMerge "Fix segmentation fault when num tile cols change in row-mt."
Harish Mahendrakar [Sat, 2 Feb 2019 04:01:57 +0000 (04:01 +0000)]
Merge "Fix segmentation fault when num tile cols change in row-mt."