Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
BUG=webm:1578
Change-Id: Ie03ed454394933fa89f751edc6928651393f3f12
|
|
Search method and step parameter might be changed in speed settings.
In this case, we should update the search area offset due to the change
of search method.
Change-Id: I51dc584bbf35e998757da326355dd4b8a4d0093f
|
|
|
|
* changes:
Implement find_prev_nb_full_mvs
Implement get_full_mv()
Pass mv_num into vp9_nb_mvs_inconsistency()
|
|
Speed Test:
C/SatdHighbdTest
blocksize: 16 time: 138 us
blocksize: 64 time: 315 us
blocksize: 256 time: 1120 us
blocksize: 1024 time: 3955 us
AVX2/SatdHighbdTest
blocksize: 16 time: 89 us
blocksize: 64 time: 189 us
blocksize: 256 time: 590 us
blocksize: 1024 time: 1912 us
Change-Id: I6357174462fccd589a475b13d8114b853cab5383
|
|
|
|
There was no setjmp on vpx_internal_error when there is no available
frame buffer, ready_for_new_data is not reset to 1.
BUG=webm:1571
Change-Id: I4f8efffb7d6fed3085b1f0229d0d1071a056b6c6
|
|
In single_motion_search, we use prev coded nb full mvs to compute
mv inconsistency.
lambda is set to block_area / 4.
This is a draft. Will to experiments to figure out the impact on
coding efficiency and visual quality.
Change-Id: Id10f72b3c7e6085bfbe1a6156b9fd6917843d001
|
|
Change-Id: Icde1b01ea7f64e2c43dcd039cc37fd306e43030f
|
|
This allow av1_nb_mvs_inconsistency to cope with variant number of
motion vectors.
Change-Id: I391aa322d458cfefaf640e7b07d5ad5ce2d3375c
|
|
|
|
This commit introduces the optimized RDMult values for both key
and non-key frames. For key frames, the commit gets values back
from commit#b13f6154df9c0834d74f7e3d41e41c4208f56d18. For impact
on key frame only encodings, see commit message for that commit.
For inter frames, the values get optimzied by running encoding tests
in Q mode with the following range using 150 frames:
2 6 10 14 18 22 26 30 34 38 42 46 50 54 58 62
The impact of current set of RDMULT values:
PSNR SSIM PSNR-HVS
lowres: -0.325% 0.422% -0.228%
midres: -0.377% 0.158% -0.376%
hdres: -0.309% 0.522% -0.322%
Test baseline is on commit#35617458
Overall, the values help PSNR based metrics, but hurt SSIM metric
slightly.
Change-Id: I7eba37a6524cb36b8498a1d104d2667781bc2089
|
|
|
|
Change-Id: I36b970953c960fde65d7b7705ccfa575c8741c43
|
|
|
|
This will allocate extra frame buffer if long term temporal reference is
used and denoiser is enabled on non-key frame.
Add test.
Change-Id: I0e8d1fdb9a2d697a8eed7fe6206bcb362e69f1c8
|
|
|
|
Postencode drop is only checked on base spatial
layers, and if set, whole superframe is dropped and
and next superframe is encoded at max-q.
Fix here is to make sure all layers are encoded at
max-q on a postencode dropped frame.
Change-Id: I2313d83ee29a382465bcec1085d8c73c37ce26d6
|
|
|
|
If scene/slide change is detected on current
superframe and max-q set because of high overshoot:
then if the lower/base spatial layer are skipped on
the current superframe, max-q is forced on the
next encoded base/lower spatial layers.
Change-Id: Id61efda86ee545395012e19476d19845e3932678
|
|
Feature works also for non-screen content mode,
so rename it.
Change-Id: I665362d50cf9a4017f114973586ad0eead066ddd
|
|
This fixes an issue where, in very rare error cases, one row of LPF
could be waiting infinitely for its previous row's LPF to complete.
With LPF optimization, the second row's LPF could be triggered before
the first row's LPF. In this case, the second row's LPF will wait for
LPF of n-sync number of SBs of the first row to finish. In error
streams, depending on when the error was detected, the LPF job of the
first row may then never be triggered. This puts the thread doing the
second row's LPF in an infinite wait.
The issue is reproduceable once in approximately 500 runs of the clip in
bug 1562.
BUG=webm:1562
Change-Id: I265d7df5ceeff0410334f5b9a4181f895bb54cab
|
|
Add functions that will do only parse or only recon. These are
duplicated and modified from decode_partition and decode_block.
Change-Id: I2201e235bf491e823ae63d27b2586bbb43b48929
|
|
|
|
Remove unneeded VPX_Q condition check.
Change-Id: I46b09ae522caa47fa7ea4441b6a6ac2840315d1c
|
|
* changes:
Consider mv inconsistency in single_motion_search
Change the interface of vp9_full_pixel_diamond_new
|
|
Decouple the constant q mode qp selection from vbr/cbr/cq modes.
Skip vp9_frame_type_qdelta() adjustment for non-ARF inter frames,
instead keep using the cq-level. It improves the compresson
performance:
avg PSNR overall PSNR SSIM
lowres -0.17% -0.20% -0.1%
midres -0.21% -0.24% -0.08%
hdres -0.15% -0.19% -0.04%
Change-Id: I52fd5f8edbd3fdcbeda31ee3a6d6eb016091a7e3
|
|
Factor out this common code needed all rate control modes.
Change-Id: If17850fbebcdce7ff24afb211aa2e6054486b814
|
|
This is still a work-in-process.
nb_full_mvs and lambda are set to zero for now, which means
mv inconsistency penalty is zero while doing the mv search.
Change-Id: I18680413d748fbdb9a33621f92f83e021036a3ab
|
|
Avoid passing in tpl_stats because this function will be called in
motion search, where tpl_stats should be fixed at the point.
Let further_steps becomes internal variable in the function.
Change-Id: Iebe380925eb1891c19e0b78163dab8e6bfafccdb
|
|
This reverts commit b13f6154df9c0834d74f7e3d41e41c4208f56d18.
Temporarily revert this change due to interactions with rate control at very low target bit-rate.
Original change's description:
> Optimize RDMULT values for key frames
>
> Encoding of 5 frames of each sequence using key frames only, the new
> values help the metrics by:
>
> PSNR SSIM PSNR-HVS
> lowres: -0.870% -0.140% -0.892%
> midres: -0.899% -0.146% -1.052%
> hdres: -0.944% -0.115% -1.028%
>
> Tested q range:
> 2 6 10 14 18 22 26 30 34 38 42 46 50 54 58 62
>
> Change-Id: I5b0dda366d589f52987c5bad11a1f95c4e6dc1a5
TBR=yaowu@google.com,paulwilkins@google.com,jingning@google.com,builds@webmproject.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: Ie1e4cf21308d69699a65a393a83884882682ea8e
|
|
Useful for noise estimation when top layer
is skipped encoded.
Change-Id: I18cbe6119bac6c21514941b1e3b530a05a42df14
|
|
|
|
Fix condition for turning off denoiser due to high
motion: use proper superframe counter and
frames_since_key counter so this condition won't
take effect on key (super)frame.
Change-Id: Ic502bf5ebfa32a921f611a78e8e963eb62b5bc79
|
|
Last reference doesn't always exist when SVC layers changed dynamically.
When last is not a reference for current layer, copy block directly on
denoiser.
Change-Id: I9d98c4d6fdcfa25ba707db3333712761b5cf9ab8
|
|
|
|
|
|
Add check and reset (turn off) usage of long term
reference if some conditons (layer id of reference vs
current frame) are not met.
Change-Id: Ie3a84e3618f4fc4d5f8da4e67316cfbefb8bae78
|
|
BUG=b/119097707
Change-Id: I6569306e897da46a44f9d8f2fb28a2a355dd4c2c
|
|
|
|
Change-Id: I67b92182ee80ec5548c5a97345b6252e49033c4a
|
|
Pave the way for new quantize_OPT.h helper files.
Change-Id: Ice7225612983f5587a9660af3320c7d0c8bb1c2f
|
|
|
|
|
|
If the scale factor of the golden long term reference
is different from the last reference then disable usage
of long term reference.
This should not happen, but add this as a check against
some possibly incorrect update of the svc configuration.
Change-Id: Ic1062d4384e005007d8c922813fa8ad188d8fa98
|
|
When scaling up partition from lower resolution layer L, mi_row and
mi_col from L must be smaller than mi_rows and mi_cols from L.
Before this change, the condition was based on mi_rows from top layer
divided by 2, which is not necessarily equal to the mi_rows from lower
resolution layer.
Added variable in SVC structure to keep track of mi_rows and mi_cols
from each spatial layer.
Re-enable partition scaling for 1080p.
BUG=webm:1578
Change-Id: Icc1c701b095cfe0a92bfecca1ed39dbe21da12b6
|
|
If in constrained layer drop mode, avoid setting
skip flag if base layer is dropped, as whole superframe
will be dropped in this case. This avoids an assert trigger
in the svc superframe packing.
Change-Id: I51c953c7fee979790c65c798bac9bd3d805dc66f
|