Paul Wilkins [Wed, 20 Mar 2019 11:41:17 +0000 (11:41 +0000)]
Merge "Changes to rd_variance_adjustment()"
Paul Wilkins [Wed, 20 Mar 2019 11:41:01 +0000 (11:41 +0000)]
Merge "Change to mode early breakout rules for FILM mode."
Paul Wilkins [Wed, 20 Mar 2019 11:40:46 +0000 (11:40 +0000)]
Merge "Store a group level noise metric from first pass."
Marco Paniconi [Wed, 20 Mar 2019 03:23:51 +0000 (03:23 +0000)]
Merge "vp9-rtc: Adjustments for base layer in screen."
Marco Paniconi [Fri, 15 Mar 2019 16:13:45 +0000 (09:13 -0700)]
vp9-rtc: Adjustments for base layer in screen.
On scene/content changes for base layer of screen:
reduce 32x32 split threshold, bias rdcost for flat
blocks if sse_y is non-zero, and avoid early exit on
intra-check.
Reduce artifacts in scroll content.
Change-Id: I144357a61462351173af900e0b8a47dac4aad6ca
Angie Chiang [Tue, 19 Mar 2019 18:41:46 +0000 (18:41 +0000)]
Merge "Compute count_ls in vp9_kmeans"
Jingning Han [Mon, 18 Mar 2019 20:52:05 +0000 (13:52 -0700)]
Normalize the Wiener variance for ranking
Normalize the Wiener variance calculation for stack ranking. Remove
potential dependency on blocks at frame boundary.
Change-Id: I37e8634d714a1c34e99f9f7c4f1bb6ea81d56112
Jingning Han [Mon, 18 Mar 2019 17:01:11 +0000 (10:01 -0700)]
Add perceptual AQ mode control to RD search
Make the rate-distortion optimization search support the perceptual
quality AQ mode.
Change-Id: Iee507ccfda90ac39b3623de705f187b1459e57e1
Jingning Han [Mon, 18 Mar 2019 22:30:17 +0000 (22:30 +0000)]
Merge "Add rdmult adjustment for perceptual AQ mode"
Angie Chiang [Sat, 16 Mar 2019 01:30:38 +0000 (18:30 -0700)]
Compute count_ls in vp9_kmeans
Change-Id: Id5a83554f2037b03a3a7d86f83e47cac311fbe1d
Angie Chiang [Mon, 18 Mar 2019 19:39:04 +0000 (19:39 +0000)]
Merge "Fix race condition in wiener_var_rd_mult"
Jingning Han [Sat, 16 Mar 2019 00:02:43 +0000 (17:02 -0700)]
Add rdmult adjustment for perceptual AQ mode
Compute the Lagrangian multiplier for the adaptive quantization
settings.
Change-Id: Ieebe074d6f8163e7541264cb0ead22432273e338
Jingning Han [Mon, 18 Mar 2019 14:11:18 +0000 (14:11 +0000)]
Merge "Improve key frame detection"
Paul Wilkins [Wed, 13 Mar 2019 16:20:23 +0000 (16:20 +0000)]
Improve key frame detection
Improve detection of key frames especially in low contrast
and low motion regions.
This patch adds a function to the key frame detection to test
for specific patterns in the intra signal in the first pass stats
that tend to be indicative of a key frame.
This is intended to compliment the existing code and finds some
scene cuts that were previously being misssed.
Tested on two clips where the existing code was struggling to
identify the key frames this patch improved detection as follows.
Film clip 1: (detected / actual)
Old (2/5) New (5/5)
Film Clip 2
Old 4/11 and one false +, New 7/11 and 1 false +.
Short 4K Film Scene
Old 1/2 New 2/2
In testing so far I have not seen many extra false +'s though
it is likely that there will be some cases and this may need
further tweaking.
One one of our longer form film test reels ~20k frames)
the change picked up around 35 key frames that were
previously missed, mainly in darker scenes. There were a few
extra (or different) false positives cause by bright flashes or
explosions but these were cases where there was little
difference between inter and intra coding.
Awaiting testing on standard sets.
Change-Id: I1ff4a587e0a47667eb93b197f39b79a1130faeca
Jingning Han [Mon, 18 Mar 2019 04:03:38 +0000 (04:03 +0000)]
Merge "Unify the rd_mult use in rd_pick_partition"
Jingning Han [Mon, 18 Mar 2019 04:03:28 +0000 (04:03 +0000)]
Merge "Setup AQ mode for perceptual quality"
Angie Chiang [Thu, 14 Mar 2019 19:28:25 +0000 (12:28 -0700)]
Fix race condition in wiener_var_rd_mult
Change-Id: Id5e9c2cbfe35809ac99a3bc9ba93cf462a6b1a34
Jingning Han [Fri, 15 Mar 2019 23:23:43 +0000 (16:23 -0700)]
Unify the rd_mult use in rd_pick_partition
Abstract the control outside rd_pick_partition function. No need
to switch between x->cb_rdmult and the cpi->rd.RDMULT here.
Change-Id: Ia3104ebe15b5e59a4f29ffe6e8c7d718ecb998a8
Marco Paniconi [Fri, 15 Mar 2019 23:10:50 +0000 (23:10 +0000)]
Merge "vp9-rtc: Some adjustments for low-resolns real-time"
Jingning Han [Fri, 15 Mar 2019 18:42:39 +0000 (11:42 -0700)]
Setup AQ mode for perceptual quality
Adapt the quantization to provide higher quality at smooth regions
where the Wiener variance is smaller.
Change-Id: Ibfd594d1de2ba34d2440d0aa7991b0fdac057ea5
Jingning Han [Fri, 15 Mar 2019 22:43:20 +0000 (22:43 +0000)]
Merge "Refactor tile boundary condition for intra prediction"
Marco Paniconi [Fri, 15 Mar 2019 00:27:58 +0000 (17:27 -0700)]
vp9-rtc: Some adjustments for low-resolns real-time
Force smooth_interpol filter for low resolutions at high Q,
avoid the loopfilter strength reduction for similar conditon,
and reduce thresh_motion for cyclic refresh turnoff.
Change-Id: I4e9121d1cdc7d1b04992c741dc4f0cec281592f7
Jingning Han [Fri, 15 Mar 2019 16:47:43 +0000 (16:47 +0000)]
Merge "Setup frame segmentation for perceptual quality target"
James Zern [Fri, 15 Mar 2019 06:07:23 +0000 (23:07 -0700)]
set_analyzer_env.sh: improve cfi diagnostics
use -fno-sanitize-trap=cfi to allow a diagnostic to be printed rather
than aborting with a SIGILL.
https://clang.llvm.org/docs/ControlFlowIntegrity.html#trapping-and-diagnostics
Change-Id: I4517cafe3c7b7305ba4845dbadf9fb679c686843
Jingning Han [Fri, 15 Mar 2019 03:26:49 +0000 (20:26 -0700)]
Setup frame segmentation for perceptual quality target
Build the frame segmentation for perceptual quality target.
Change-Id: Icdea28aea02d84ce9c8011f63a3f97133f94a141
Jingning Han [Fri, 15 Mar 2019 03:24:23 +0000 (03:24 +0000)]
Merge "Let vp9_kmeans provide boundary for each group"
Angie Chiang [Thu, 14 Mar 2019 22:06:45 +0000 (15:06 -0700)]
Let vp9_kmeans provide boundary for each group
boundary_ls[j] is the upper bound of data centered at ctr_ls[j]
Add vp9_get_group_idx() for computing group_idx
Change-Id: I3b1b488edf8acbfb63c469eeeba15f3e42b0a645
Jerome Jiang [Thu, 14 Mar 2019 23:08:43 +0000 (23:08 +0000)]
Merge "Enclose macro arguments in parentheses"
Jingning Han [Thu, 14 Mar 2019 15:28:44 +0000 (08:28 -0700)]
Refactor tile boundary condition for intra prediction
Explicitly compare the block location against tile coordinate to
decide if intra prediction boundary is available. No coding stats
will be changed by this refactoring.
Change-Id: I80b3a131366bb2c5f8ea53a139ed6e9b0b7ddb68
Jerome Jiang [Wed, 13 Mar 2019 23:21:43 +0000 (16:21 -0700)]
Enclose macro arguments in parentheses
BUG=webm:1606
Change-Id: I661485b860243c95b6450035dbac77b0dd4d9ff4
Angie Chiang [Thu, 14 Mar 2019 17:22:09 +0000 (17:22 +0000)]
Merge changes Ifc006890,I753920a6
* changes:
Apply kmeans on log of wiener_variance
Add vp9_kmeans()
Marco Paniconi [Thu, 14 Mar 2019 04:51:46 +0000 (04:51 +0000)]
Merge "vp9-svc: Reorganize the simulcast mode"
Marco Paniconi [Thu, 14 Mar 2019 01:59:49 +0000 (01:59 +0000)]
Merge "vp9-rtc: Avoid TM intra on big blocks for screen"
Angie Chiang [Tue, 12 Mar 2019 22:50:04 +0000 (15:50 -0700)]
Apply kmeans on log of wiener_variance
Change-Id: Ifc0068902e036cd5d94fc5d39f0349a5875469b7
Angie Chiang [Tue, 12 Mar 2019 01:40:53 +0000 (18:40 -0700)]
Add vp9_kmeans()
Change-Id: I753920a65fb14a252617444f49feb40dc332d766
Angie Chiang [Thu, 14 Mar 2019 00:18:04 +0000 (00:18 +0000)]
Merge "Safe guard zero median filter outcome case"
Angie Chiang [Thu, 14 Mar 2019 00:13:47 +0000 (00:13 +0000)]
Merge "Refactor speed feature settings"
Marco Paniconi [Wed, 13 Mar 2019 22:55:18 +0000 (15:55 -0700)]
vp9-rtc: Avoid TM intra on big blocks for screen
For screen content real-time mode: don't check TM
intra for bsize >= BLOCK_32X32.
Small speedup and avoid some artifacts seen
in scrolling screen content.
Change-Id: I72d7731eeb6ac9ee96e65af522c1a9aabb6dc4ef
Marco Paniconi [Wed, 13 Mar 2019 20:46:12 +0000 (13:46 -0700)]
vp9-svc: Reorganize the simulcast mode
Set the lst/gld/alt_fb_idx and refresh flags for
key frames at the start of encoding (in svc_set_params).
This then avoids new code/function in update_references()
and in copy_flags_ref_update().
Change-Id: Id3503c0c628540c20f11a540c118c4ee4cf04848
Marco Paniconi [Wed, 13 Mar 2019 20:16:17 +0000 (20:16 +0000)]
Merge "vp9 simulcast: update buffer slot flag used in API."
Jingning Han [Wed, 13 Mar 2019 19:06:39 +0000 (12:06 -0700)]
Safe guard zero median filter outcome case
In case median filter returns 0 value, bypass the Wiener filter
stage. This avoids potential divided by 0 case.
In the same place use a temp variable to take the Wiener filter
output instead of returning to the coeff array.
Change-Id: I45f57c515b4062a0aa1f312eda852462cb655d8e
Jerome Jiang [Wed, 13 Mar 2019 16:13:35 +0000 (09:13 -0700)]
vp9 simulcast: update buffer slot flag used in API.
Also add #spatial_layers > 1 to simulcast_mode
Change-Id: I6234da81801176ac8678f9f5e1323f8b289cb663
Jingning Han [Wed, 13 Mar 2019 18:20:28 +0000 (11:20 -0700)]
Refactor speed feature settings
Make the speed feature setup functions take speed argument as
their input.
Change-Id: I542e8f6e04658e5d99e972380a31baab99a4fc23
Jingning Han [Wed, 6 Mar 2019 01:06:20 +0000 (17:06 -0800)]
Adaptive multiplier based on the Wiener variance
Adapt the Lagrangian multiplier based on the Wiener variance at
64x64 block level.
Change-Id: Ica195ed6f706daf6eee156d4b1a55bda65a92f7b
Jingning Han [Wed, 13 Mar 2019 16:18:09 +0000 (16:18 +0000)]
Merge "Add normalization over frame level Wiener variance"
Jingning Han [Wed, 13 Mar 2019 16:17:52 +0000 (16:17 +0000)]
Merge "Set up Wiener variance for macroblocks in a frame"
Jingning Han [Tue, 5 Mar 2019 20:14:40 +0000 (12:14 -0800)]
Add normalization over frame level Wiener variance
Normalize the block level Wiener variance based decision according
to the frame level Wiener variance.
Change-Id: Ic2bdf1b322a65661775541dd6c174ba71579461a
Jingning Han [Tue, 5 Mar 2019 18:45:16 +0000 (10:45 -0800)]
Set up Wiener variance for macroblocks in a frame
This commit introduces a Wiener variance term. For each block in
the source frame, we first estimate its film grain noise level
using median filter in the transform domain. Each transform
coefficient is then processed using Wiener filter to account for
the impact on the energy level due to film grain noise. The result
leads to a second moment of the denoised signal.
Change-Id: Ibce7cb1b0cb8fe1aba807d95289712271d576948
chiyotsai [Tue, 12 Mar 2019 17:03:00 +0000 (10:03 -0700)]
Remove highbd_temporal_filter_sse4.c when REAL_TIME_ONLY is on
Change-Id: I3ca7442b10cbea4dd5dbabe147687d1cb3cce4d8
Jerome Jiang [Tue, 12 Mar 2019 00:55:34 +0000 (00:55 +0000)]
Merge "vp9-decoder: use long int for buffer offset."
Jerome Jiang [Mon, 11 Mar 2019 22:45:47 +0000 (22:45 +0000)]
Merge "vp9: map speed > 9 to speed 9."
Jerome Jiang [Mon, 11 Mar 2019 22:13:19 +0000 (15:13 -0700)]
vp9-decoder: use long int for buffer offset.
integer overflow when frame size too big.
BUG=webm:1603
Change-Id: Ifbb81b5fb6a2043d09d403e7c50ab8d7bf125dca
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
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
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
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
Marco Paniconi [Fri, 8 Mar 2019 19:38:43 +0000 (19:38 +0000)]
Merge "vp9-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
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
Chi Yo Tsai [Fri, 8 Mar 2019 17:46:08 +0000 (17:46 +0000)]
Merge "Optimize SSE4_1 lowbd temporal filter implementation"
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."
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
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
Chi Yo Tsai [Thu, 7 Mar 2019 22:24:26 +0000 (22:24 +0000)]
Merge "Add SSE4_1 highbd version of temporal filter"
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
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
Johann Koenig [Wed, 6 Mar 2019 23:59:20 +0000 (23:59 +0000)]
Merge "add -Wmissing-prototypes"
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
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
Jerome Jiang [Fri, 1 Mar 2019 17:50:50 +0000 (09:50 -0800)]
vp9: map speed > 9 to speed 9.
Report warning in example encoder.
Change-Id: Iec4cdffce9faa65241756fbdac498214c8b93cc1
Angie Chiang [Tue, 5 Mar 2019 23:13:41 +0000 (15:13 -0800)]
Include gf_frame_offset in dump_tpl_stats
Change-Id: If868f67ccc1c73189bc4c139a807d7341e59b668
Jerome Jiang [Tue, 5 Mar 2019 22:50:39 +0000 (22:50 +0000)]
Merge "vp9 svc example: use CONFIG_VP9_DECODER guarding decoding."
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
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
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
Angie Chiang [Tue, 5 Mar 2019 18:51:42 +0000 (18:51 +0000)]
Merge "Fix compile error when DUMP_TPL_STATS is 1"
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
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
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
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
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
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
Paul Wilkins [Fri, 1 Mar 2019 13:42:48 +0000 (13:42 +0000)]
Merge "Strengthened film grain setting."
Paul Wilkins [Fri, 1 Mar 2019 13:42:11 +0000 (13:42 +0000)]
Merge "Fix RD multiplier bug impacting AQ1."
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
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
Jerome Jiang [Thu, 28 Feb 2019 19:00:25 +0000 (19:00 +0000)]
Merge "Set 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
Marco Paniconi [Thu, 28 Feb 2019 17:21:24 +0000 (17:21 +0000)]
Merge "vp9-rtc: Change init level of denoiser & noise level"
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
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
Paul Wilkins [Thu, 28 Feb 2019 12:58:20 +0000 (12:58 +0000)]
Merge "Change to direction of scan for GF only group boost."
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
Marco Paniconi [Wed, 27 Feb 2019 22:45:56 +0000 (22:45 +0000)]
Merge "vp9-rtc: Add cyclic_refresh condition to segment reset"
Marco Paniconi [Wed, 27 Feb 2019 22:08:09 +0000 (22:08 +0000)]
Merge "vp9: 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
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
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
Marco Paniconi [Mon, 25 Feb 2019 04:43:13 +0000 (04:43 +0000)]
Merge "vp9-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