Age | Commit message (Collapse) | Author |
|
* changes:
force-inline the convolve functions
Unbreak the force inline directive for gcc
|
|
Change-Id: I3ba75c459ed7c9591b7892e9f8f108146c04507d
|
|
|
|
functions: upper camelcase
members: lowercase with trailing '_'
decl order: functions (overrides marked virtual), members
after:
656e8ac61 VSX version of vpx_post_proc_down_and_across_mb_row
766d875b9 VSX version of vpx_mbpost_proc_ip
35e98a70b VSX version of vpx_mbpost_proc_down
b2898a9ad Bench Class For More Robust Speed Tests
Change-Id: Ib257bd607c5c1248d30e619ec9e8a47cc629825b
|
|
Allow for second temporal reference for top spatial layer in SVC,
when inter-layer prediction is disabled on INTER frames.
The second temporal reference is labelled as the golden reference
and the update/refresh of this reference buffer is only on base
temporal layer superframes. For now the period of refresh is
fixed at every 20 TL0 superframes.
Average gain is ~4% on RTC set, several clips up
by ~8-12%. Speed loss is about ~2% on mac.
Feature is disabled as default for now.
Change-Id: I2e5db5052c62dbe958a3b14be97d043823b7a529
|
|
Change-Id: I97d26285ec146628cbafd3573ca812c630c6687d
|
|
|
|
Change-Id: I4c4d31d013cb45e20918f4ef83ce32811d76e02b
|
|
|
|
|
|
Fixed some settings in nonrd pick mode to allow for frame-level bilinear
to be set.
On Galaxy S8+ it has 4% speed up on high motion clips. Almost the same
for low motion.
0.17% quality loss on RTC.
Change-Id: I044a7de020183754ba08bb6c96c5a78ba5c7fea2
|
|
|
|
Add condition of LAST frame to the consec_zeromv and
avg_frame_low_motion metrics. This is needed for SVC as
the golden reference is a spatial reference and should
not be included in the metric computation.
Small/negligible change in metrics on RTC set.
Change-Id: I6ea16298fae566bb288c34cf50d120b509146eee
|
|
Low bit depth version only. Passes the VpxPostProcDownAndAcrossMbRowTest
VpxMbPostProcAcrossIpTest Speed Test (POWER8 Model 2.1)
C time = 121.3 ms (±4.0 ms), VSX time = 9.4 ms (±0.3 ms) [12.9x]
Change-Id: I28300779e197ea3855cf30867d17a2805388b447
|
|
Add a neural net model that uses the same features as the existing
linear model. Make the pruning decision based on both the linear
and the neural net model. It provides more accurate predictions,
and may improve compression and/or encoding speed.
This only affects speed 0.
Coding gain:
0.37% on midres
0.34% on hdres
0.50% on jvet8b720p
Encoding speed impact(average over locally tested 20 clips from midres
and hdres):
QP=20: down by 2.5%.
QP=30: down by 3.9%.
QP=40: donw by 4.5%.
QP=50: up by 5.2%.
Change-Id: I402ec799745ad3b74abf0789fa5e124fe64e704d
|
|
|
|
|
|
The avg_frame_low_motion and consec_zeromv are frame-level
metrics that are updated on every frame. For SVC these should be
updated on top spatial layer (full resolution).
Small/negligible change in metrics.
Change-Id: Ibe14f05be3b82daa9dd60378097ff11a27f1b95e
|
|
Move the adjustment code to separate function.
Change-Id: I876b246a5c26095f262bb9a19f03d1f17077225d
|
|
|
|
This is a combination of the following 3 reverts. The changes cause
issues on certain hardware devices. We'll pull them for now to allow for
further investigation.
Revert "Experiment regarding playback problems on Bravia TVs."
This reverts commit 624f8105f5ae7e0bc82bdc7e10a4253295134a8b.
Revert "Improved slide show coding"
This reverts commit f4091bc30eef0fcacb5d5bd74ab7cfbc3c8aab5f.
Revert "Improved coding on slide show content."
This reverts commit 2fa333c2ae1b6fcc1864de12a7ad344a16e2ac0a.
BUG=b/77492144
Change-Id: Ifba937792d644a9286307262f050216408e8ecf4
|
|
Change-Id: I7dd1e37c5de3efccc07fcdc877653d4873a88266
|
|
|
|
Disabled as default as enc_cfg.rc_dropframe_thresh is
set to 0 as default.
Change-Id: Ia888aa16b1a86a716ec33ea041e8b16b19bf93be
|
|
|
|
this allows the targets to be used explicitly in builds configured with
--enable-external-build
Change-Id: Id7db309a39a73cfd8f15f74430b17b317c0a847f
|
|
For CBR mode with aq-mode=3: reduce delta-q for second
segment and limit how much the frame-level q can decreae
from one frame to the next.
Reduces bitrate spikes in slide/sreen content.
Change-Id: Id9ac4b7270f07e09690380755cfbef4aec5c26dc
|
|
Low bit depth version only. Passes the VpxMbPostProcAcrossIpTest.
VpxMbPostProcAcrossIpTest Speed Test (POWER8 Model 2.1)
C time = 188.5ms (±0.2ms), VSX time = 65.2ms (±0.1ms) [2.9x]
Change-Id: I1cf72365d94a9d7f1e9323925a87a30e3bd5cfe2
|
|
Low bit depth version only. Passes the VpxMbPostProcDownTest.
VpxMbPostProcDownTest Speed Test (POWER8 Model 2.1)
Full calculations:
C time = 195.4 ms, VSX time = 33.7 ms (5.8x)
Change-Id: If1aca7c135de036a1ab7923c0d1e6733bfe27ef7
|
|
To make speed testing more robust, the AbstractBench runs the
desired code multiple times and report the median run time with
mean absolute deviation around the median.
To use the AbstractBench, simply add it as a parent to your test
class, and implement the run() method (with the code you want to
benchmark).
Sample output for VP9QuantizeTest
[ BENCH ] Bypass calculations 4x4 165.8 ms ( ±1.0 ms )
[ BENCH ] Full calculations 4x4 165.8 ms ( ±0.9 ms )
[ BENCH ] Bypass calculations 8x8 129.7 ms ( ±0.9 ms )
[ BENCH ] Full calculations 8x8 130.3 ms ( ±1.4 ms )
[ BENCH ] Bypass calculations 16x16 110.3 ms ( ±1.4 ms )
[ BENCH ] Full calculations 16x16 110.1 ms ( ±0.9 ms )
Change-Id: I1dd649754cb8c4c621eee2728198ea6a555f38b3
|
|
Move frame dropper to after scene detection and noise estimation.
Scene detection and noise estimation operate on source data and
update metrics along sequence, so they should be moved before
the frame dropper.
Also we don't want to drop on scene change, as the scene detection
and (possible) re-encode step will be missed.
Change-Id: I3d9e16d785bd5ace6707db2abce77ddc110bfef4
|
|
For the max_consec_drop parameter in svc frame drop:
since passing value 0 in the control would completely
disable the dropper, only allow for values >= 1 to be set.
Change-Id: I6b74ec9cc08a638fa571d6246a021dab9c811d14
|
|
|
|
The pointer in vp8 postproc refers to show_frame_mi which is only
updated on show frame. However, when there is a no-show frame which also
changes the size (thus new frame buffers allocated), show_frame_mi is
not updated with new frame buffer memory.
Change the pointer in postproc to mi which is always updated.
Bug: 842265
Change-Id: I33874f2112b39f74562cba528432b5f239e6a7bd
|
|
|
|
Disable denoiser, skin detection and aq-mode for high bitdepth for now.
BUG=webm:1534
Change-Id: I361a4e20b2319041148af497bf7043bfd5c5f589
|
|
For any spatial, limits the amount of consecutive frame drop.
Change-Id: I692d90363f329f571f2b59e12cc680ad2e76065d
|
|
For screen content mode: changes to reduce occurence of
significant QP decrease (from one frame to next),
which can cause large frames (overshoot/delay).
-cap the buffer increase to optimal level for frame drop
mode where full superframe can drop
-reduce the max_adjustment_down due to buffer overflow
-reduce qp threshold to trigger re-encode on large frame
Change-Id: I3e30e4814192b5f728abff3f7359eb64f561b8f0
|
|
|
|
This will check for dropping full superframe if any
spatial layer is overshooting.
Change-Id: Ic656807028ebef5552301b6d10399fbe3a6c890c
|
|
|
|
Rename a flag to indicate it is for the inter_layer reference.
Change-Id: Ib198d3df95fb912259efde854613592c724b7c49
|
|
references were earlier removed in:
1a7d25a48 Replace vpx_ports/config.h with vpx_config.h
Change-Id: I1824cd71e970f5c7550c3978e0c63ce36a9644e4
|
|
Change-Id: Ib49e1d79ba4c1c5d5147ab437f744a31429a059c
|
|
|
|
|
|
In vp9_svc_constrain_inter_layer_pred() we disable the
inter_layer prediction if anything but only the previous
spatial layer (from same supeframe) is used for inter_layer
prediction. This check and disabling was only allowed when
the control VP9E_SET_SVC_INTER_LAYER_PRED is set to
INTER_LAYER_PRED_ON_CONSTRAINED.
But the control VP9E_SET_SVC_INTER_LAYER_PRED is needed for setting:
INTER_LAYER_PRED_ON/INTER_LAYER_PRED_OFF/INTER_LAYER_PRED_OFF_NONKEY.
So there is a conflict with setting INTER_LAYER_PRED_ON_CONSTRAINED.
Fix for now is to always allow for this disabling check
(disable inter_layer reference if its not previous spatial layer) as
long as inter_layer prediction is used (i.e., not set to _OFF).
A separate fix if needed may be to invoke another control for setting
INTER_LAYER_PRED_ON_CONSTRAINED.
This was causing an issue with enabling spatial layers on the fly
(say spatial layer 2), where since INTER_LAYER_PRED_ON_CONSTRAINED was
not set (default), the inter_layer prediction was then using a reference
from 2 spatial layers below (spatial layer 0).
Change-Id: Ic6434000665f63aab27c509b5eb7b8fc965827bc
|
|
When encoding a given spatial layer and the same spatial layer
on previous superframe was dropped (or disabled due to 0 bitrate),
the lst_fb_idx for current layer is set to the buffer index that
was last updated on TL0 frame (for the same spatial layer).
This condition was to maintain proper temporal prediction pattern
under frame drops, and it should only apply to INTER frames.
But the condition was causing an assert to be triggered on spatial
layers whose base are key frames. Fix is to condition this reset of
lst_fb_idx on the "is_key_frame" flag. Also initialize the
fb_idx_upd_tl0 to -1 and only use it for a given spatial layer
if its been set.
These issues can happen when superframe drop happens just before
a key frame, or when stream starts with lower layers and dynamically
enabled higher spatial layers.
Added datarate unittest the inserts key frame after superframe drop,
and verified that this fix is needed for test to pass.
Also modified the existing DisableEnable spatial layer test to trigger
the issue of using fb_idx_upd_tl0 when it hasn't been set for a
spatial layer.
Change-Id: I059d1135736aca17e1326b9b4a2b16371eb4634e
|
|
+ bump ios minimum to 7.0; 6.0 does not have full c++11 support
Change-Id: If838b036e7327fda514cd2e8156eeda122cf6c73
|
|
This reverts commit d32a55ffc40bba75ed8b770b282836a9d248d6a9.
Use the correct 'check_add_cxxflags' invocation.
Change-Id: I97d8062c9218b81a24268ec5998e847b1a0efeda
|