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
|
|
This reverts commit 02b3ef7faee5be5ee519856fbb3523d3ab49f6e7.
Reason for revert: fails to build under visual studio
Original change's description:
> Add Tile-SB-Row based Multi-threading in Decoder
>
> Add the multi-thread function that decodes a video row by row instead
> of a tile at a time. Create a job queue for queueing all parse and recon jobs.
> Each SB row of a tile is a job.
>
> Performance Improvement:
>
> Platform Resolution 3 Threads 4 Threads
> ARM 720p 36.81% 18.37%
> 1080p 32.27% 14.76%
>
> ARM Improvement measured on Nexus 6 Snapdragon 805 Quad-core @ 2.65 GHz
>
> Change-Id: I3d4dd7a932fc2904c90d9546b2de99c809afd29e
BUG=webm:1587
Change-Id: Ia4c8f5128922a205cd9fd83aaef8a2e73764d4a7
|
|
|
|
BUG=webm:1584
Change-Id: I43d051c538bf4a6f6210eefa398dc0901ab8d157
|
|
BUG=webm:1584
Change-Id: Ie0d26b745ab1f5907a6a2dc10fbc5083f3fb0b8d
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
this implementation does not scale well beyond that. this restores the
performance in v1.7.0.
BUG=webm:1574
Change-Id: I8f3464cfe871988fa06ebefe9954811fd002584e
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
Add the multi-thread function that decodes a video row by row instead
of a tile at a time. Create a job queue for queueing all parse and recon jobs.
Each SB row of a tile is a job.
Performance Improvement:
Platform Resolution 3 Threads 4 Threads
ARM 720p 36.81% 18.37%
1080p 32.27% 14.76%
ARM Improvement measured on Nexus 6 Snapdragon 805 Quad-core @ 2.65 GHz
Change-Id: I3d4dd7a932fc2904c90d9546b2de99c809afd29e
|
|
|
|
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
|
|
|