Age | Commit message (Collapse) | Author |
|
When CONFIG_VP9_HIGHBITDEPTH is enabled,
lowbd modules were called in the hbd path.
This patch fixes the issue.
(cherry picked from commit 797ec1cd66c04fd335adba8ecc01dc93eab1898e)
BUG=webm:1589
Change-Id: I1caf701514dbf80eb75b953f40b1e7238f265a2c
|
|
BUG=webm:1584
Change-Id: I719c64734f4eae07def2d700006834a2420891a7
|
|
Values in [q]coeff1 were not correctly stored. This caused a segfault
in the sse2 libvpx__nightly_optimization jobs.
Broken in:
commit 85032bac388917916f7a149173db8b34e93e8f6e
Author: Johann <johannkoenig@google.com>
Date: Fri Dec 21 00:27:00 2018 +0000
fdct_quant: resolve missing declarations
BUG=webm:1584
Change-Id: I5f5fad34ec5e32023f5b40ff3691125754c11ced
|
|
|
|
Before this patch, if mi_col_end was odd, then the for loop for 'mb_col'
was looping once LESS than it should have been.
For example, if mi_col_end = 47, then the loop was terminating when
mb_col == 23. However, the correct behavior would be to terminate when
mb_col == 24.
The issue was introduced in:
https://chromium-review.googlesource.com/c/webm/libvpx/+/423279
This can lead to many of the stats being inaccurate, for such videos
(with mi_col_start/end having an odd value).
As an example:
Even for very static content, fp_acc_data->intercount can never reach the
same value as num_mbs. And in turn, pcnt_inter can never reach the value 1
(that is, 100%). This would lead to very static videos NOT being marked
static, and encoded like regular videos.
Note: this is just one possible effect based on observation. Other
issues are also possible based on other stats.
Improvement on some test clips:
-------------------------------
- One test clip saw a gain of -2.580% in VBR mode (and -3.153% in Q
mode). The reason for improvement: a wrongly detected scene cut was
avoided due to corrected value in 'this_frame->pcnt_inter'.
- Some very static clips correctly marked as having 100% zero motion.
This avoided addition of unncecessary alt-refs, thereby reducing the
bitrate.
BDRate (PSNR) on regular sets (VBR mode):
-----------------------------------------
lowres: 0.0
midres: -0.027 (some clips were better/worse, but I double checked that
changes were as expected, given correction in stats calculation).
hdres: 0.0
STATS_CHANGED for the types of videos described above.
Change-Id: Ifbc2c0c0815d23ec4015475680bdf8886f158dcc
|
|
The smallest block size of motion field is 4x4, but the mi_unit
size is 8x8, therefore the number of units of motion field is
"mi_rows * mi_cols * 4".
Change-Id: I95292904d757705d39b78af5d0cf2d25f376c642
|
|
Change-Id: I43fd61f7946a8a96d444dab5e94a9b01483ffab7
|
|
Use variable block sizes in temporal filtering. Based on prediction
errors of 32x32 or 16x16 blocks, choose the block size adaptively.
This improves the coding performance, especially for HD resolutions.
Speed 1 borg test result:
avg_psnr: ovr_psnr: ssim:
lowres: -0.090 -0.075 -0.112
midres: -0.120 -0.107 -0.168
hdres: -0.506 -0.512 -0.547
Change-Id: I8f774e29ecb2e0dd372b32b60c32d8fa30c013a8
|
|
BUG=webm:1584
Change-Id: I43d051c538bf4a6f6210eefa398dc0901ab8d157
|
|
|
|
|
|
Store outputs using store_tran_low()
BUG=webm:1584
Change-Id: I213abe047e14625c5ef80df7fa6fdc2a31e40fb6
|
|
Refactored temporal filtering, so that it was not hard-coded to
16x16 block size.
Change-Id: I06d0787660ff6eee6a8f02a846ad0e26c6825f54
|
|
|
|
Mark local functions as 'static.' Found with -Wmissing-declarations
BUG=webm:1584
Change-Id: Icbdb0ceca3dbf3005ca29bfda05d533d241577d0
|
|
|
|
|
|
|
|
The special case was put in to prevent a lossless test failure, the
issue has been dealt with by a recent fix of skip condition in
lossless mode.
Change-Id: Ia25d2bf6beead2208841b4f012171dffac15f411
|
|
|
|
|
|
Handle the rdmult update for all AQ modes in a single function
call.
Change-Id: Ia0dfce637cf70d646bd3cd0abe3064e9491b81b8
|
|
Change-Id: I760c69189fb8d8d85b5daffc86064c66913c0220
|
|
Do not skip without check when lossless is requested.
Change-Id: Iceda428e7bf5ab19202b1dcb598e389fcaf6978d
|
|
|
|
|
|
Factor out the segment_id assignment for various AQ modes.
Change-Id: I34a86524048621cd369baf4bafbdfac621994563
|
|
Factor out the segment_id setup from mi array alignment.
Change-Id: I345ad7ea7b6c9edb6f86224e1941f2c954d68ff3
|
|
Use same step_param for all spatial layers for now.
Some improvement in quality on scrolling for spatial
enhancement layer.
Change-Id: Ic9eed8ba5dd44493e9f5e81f6115df2a25825d16
|
|
|
|
|
|
|
|
|
|
Move it to deeper stages where all the encoder configurations have
been set. This avoids the encoding failure when the buffer is
allocated before the encoder is fully configured.
Change-Id: I6723966fd2c7c36fbab9a92d1f3bd59c83ed95f0
|
|
Remove the "spatial_layer_id == 0" condition in
the speed features for setting the motion search
for screen content.
Change-Id: Ib47aea3af5f3b2e04226694b4126b2ae2f458f13
|
|
The breakout speed feature is currently only used by the non-rd
mode search path. Localize it to simplify set_offset() logic.
Change-Id: I27e7519c987a7caac2e4bd6be0ede1b9c8320e55
|
|
Change-Id: I46f695b15153c8c508f525a5673db24326371977
|
|
Placeholder to support adaptive quantizer for PSNR and SSIM coding
quality improvement.
Change-Id: Id967c9914bb1d72a6f480ef1ba9d6650914dd658
|
|
For non-base spatial layer in screen-content mode:
use nstep but with larger step_param value than sl0,
to avoid increase in encode_time.
Some improvement on scrolling slides content.
Change-Id: Ica918ac01664431d1fabb3c674d857cf6ad87414
|
|
Define the rc->high_num_blocks_with_motion, set in the
scene change analysis, to be defined per superframe.
This is used for increasing motion search area on
some (super)frames, e.g., for scrolling.
Also some code cleanup in rt_speed_feature_.
No change in behavior.
Change-Id: I1a5c04b9cd4aef1723ce42f82e981a2ca15c8b9d
|
|
|
|
On scene/slide change detected on TL > 0 frame, only
reset the temporal layer pattern for flexible/bypass mode.
Change-Id: Ib848778addc10ef6981b92839af397833fd4a908
|
|
|
|
The control has been exposed to the vpxenc input parameter. Remove
the internal hard coded control that disables it at speed 1 and
above settings.
Change-Id: Ib17772cb895f24da5a7d0487e748cc1a9c6740b3
|
|
|
|
Move the related code into the function.
This is to facilitate of building pyramid motion field.
Change-Id: I879db2271e227af63c5eac76b0c70c985b86a2da
|
|
We plan to compute mv field in different scale.
Change-Id: I49a92d948f8b5dbab78e38c61f5f4f879bbe269f
|
|
* changes:
Change interface of motion_compensated_prediction
Move prepare_nb_full_mvs to vp9_mcomp.c
|
|
|
|
|