summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2018-11-29vp9-svc: Add num_encoded_top layer counterMarco Paniconi
Useful for noise estimation when top layer is skipped encoded. Change-Id: I18cbe6119bac6c21514941b1e3b530a05a42df14
2018-11-29Merge "vp9: Fix condition for disabling noise estimation"Marco Paniconi
2018-11-28vp9: Fix condition for disabling noise estimationMarco Paniconi
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
2018-11-28vp9 denoiser: force copy block when last not a reference.Jerome Jiang
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
2018-11-28Merge "Remove ineffective condition from rc_pick_q_and_bounds"Jingning Han
2018-11-28Merge "vp9-svc: Add check/reset for long term reference."Marco Paniconi
2018-11-27vp9-svc: Add check/reset for long term reference.Marco Paniconi
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
2018-11-27vp9 svc: copy block if ref buffer in denoiser is NULL.Jerome Jiang
BUG=b/119097707 Change-Id: I6569306e897da46a44f9d8f2fb28a2a355dd4c2c
2018-11-27Merge "rename quantize_x86.h"Johann Koenig
2018-11-27Remove ineffective condition from rc_pick_q_and_boundsJingning Han
Change-Id: I67b92182ee80ec5548c5a97345b6252e49033c4a
2018-11-27rename quantize_x86.hJohann
Pave the way for new quantize_OPT.h helper files. Change-Id: Ice7225612983f5587a9660af3320c7d0c8bb1c2f
2018-11-27Merge "Fix ARF rate allocation for cq mode"Jingning Han
2018-11-27Merge "VP9 SVC: fix crash on scaling partition."Marco Paniconi
2018-11-26vp9-svc: Put check on usage of long term temporal ref.Marco Paniconi
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
2018-11-26VP9 SVC: fix crash on scaling partition.Jerome Jiang
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
2018-11-26vp9-svc: Fix to skip enhancement layer settingMarco Paniconi
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
2018-11-26Fix ARF rate allocation for cq modeJingning Han
In the limited test set, it improves the cq mode compression performance by 1.9% in PSNR and 6% in SSIM as compared to use same quantization parameter for all ARFs. Change-Id: I35c4d7097b5838ab0b92d7f9937520721e3bb84b
2018-11-21vp9 screen-content: Keep lower step_param for quality layers.Marco Paniconi
Issue with step_param = 2 seems specific to lower layers with different resolution. Change-Id: I26405488ac7691b3e471e98e794d4b1d8098a91d
2018-11-21Merge changes I02279405,I87e1c3f0,Id70235c8,I62602aa4,I5722d262Angie Chiang
* changes: Fix scan_build warnings in tiny_ssim.c Fix scan_build warnings in convolve_test.cc Fix scan_build warnings in vp9_loopfilter.c Fix scan_build warnings in variance_test.cc Fix scan_build warnings in vp9_resize.c
2018-11-21vp9 screen-content: Adjust seach step paramMarco Paniconi
Increase to 4 (from 2) on slide/scroll changes, as there is an issue/failure with the current setting with offline encode for high resolns. Change-Id: I8f06c6bdcd59013ab000d75bd75770c667bf70d2
2018-11-21Fix scan_build warnings in vp9_loopfilter.cAngie Chiang
BUG=webm:1575 Change-Id: Id70235c801d253d47267c6d34760484f82d5c881
2018-11-21Fix scan_build warnings in vp9_resize.cAngie Chiang
BUG=webm:1575 Change-Id: I5722d2626b9043b83581a700e58c2b7204113a16
2018-11-21Merge "Replace int64_t with int for rdmult"Yaowu Xu
2018-11-20Merge "Disable partition scaling on 1080p and above."Marco Paniconi
2018-11-20Disable partition scaling on 1080p and above.Jerome Jiang
BUG=webm:1578 Change-Id: I7c8014b7ab96d372d486433bce24d058a60fdc85
2018-11-20vp9-svc: Reset temporal layers on scene changeMarco Paniconi
Reuse existing function for resetting temporal layer pattern. And fix to use first spatial layer to encode, and some refactoring in encode_without_recode_loop(). Change-Id: Ifb22bb9de793ecb8e73f410e125c7c12383da1d2
2018-11-20Replace int64_t with int for rdmultYaowu Xu
No need for the upgrade to int64_t Change-Id: I8331839c00718a0a987257772357be72b40e19be
2018-11-19Minor simplificationsYaowu Xu
Change-Id: I231e863f838f449335236c174b74bd33dfdd8b19
2018-11-19vp9: Fix to the svc buffer updateMarco Paniconi
Condition the pre-encode buffer update based on TS diff on temporal layers = 1 for now, as some fix is needed for the case where #temporal_layers > 1. Change-Id: I58163b956db415217e4687a31f8ba110545b09f5
2018-11-19Merge "Optimize RDMULT values for key frames"Yaowu Xu
2018-11-16Optimize RDMULT values for key framesYaowu Xu
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
2018-11-16vp9: Reorganize the buffer level for cbr modeMarco Paniconi
Refactor the code with some changes. Split update into two parts: move the fillup (with per-frame-bandwidth) before the encoding, and keep the leaking part (with encoded_frame_size) after the encoding (postencode). For SVC with ref_frame_config usage: allow usage of timestamp delta for the fillup part of buffer, instead of the (average) framerate passed in via the duration. Moving the buffer fillup (+per-frame-bandwidth) part to the pre-encode causes some difference in performance (since buffer level affects active_worst/QPand frame-dropping), but the change is observed to be small. Made small adjustment to active_worst_quality to compensate. Adjust some thresholds in datarate tests. Change-Id: I81a5562367034f318cffd451304bc4a34bf02a1d
2018-11-16Merge "quantize: use aarch64 vmaxv"Johann Koenig
2018-11-16Merge "Fix arf boost factor calculation for intermediate ARFs"Jingning Han
2018-11-15Merge changes Ib9d16a4b,I6061f38cAngie Chiang
* changes: Refactor av1_nb_mvs_inconsistency() Recompute mv inconsistency after mv search is done
2018-11-14Fix arf boost factor calculation for intermediate ARFsJingning Han
Need to offset the forward range by 1 to include the stats for the current frame itself. Change-Id: I3b5171b7edef51ec4e97e4e0542ca58af5ce1416
2018-11-14Refactor av1_nb_mvs_inconsistency()Angie Chiang
Change-Id: Ib9d16a4bc3ce1d28493e34f24dc18a6b511738f0
2018-11-14Recompute mv inconsistency after mv search is doneAngie Chiang
Change-Id: I6061f38cb42eea2b4c8996ad372c829dc1051c8d
2018-11-14Disable tpl model in GF-only GOP structureJingning Han
The tpl model assumes a relative short stats buffer length. Hence it is not ready to support GF-only GOP structure where the max length can go up to 250. Disable tpl model in such setting to avoid a rare encode failure in GF-only setting. Change-Id: I3409dbb829a8105478876684ec21a2bd405c33c8
2018-11-14Fix GF-only frame type allocationJingning Han
Rework the recursive ARF allocation to avoid missing one frame's type assignment issue in GF only GOP structure. This fixes a rare encoder failure issue in GF only setting. Change-Id: I3e41fe36d3cb954de25ffc058a42b2b8be0fcd7a
2018-11-13Merge "Rescale arf bit budget calculation"Jingning Han
2018-11-13Skip ACL recode loop for intermediate ARF layersJingning Han
Speed up the encoding time by ~20% for multi-layer ARF system. Change-Id: I16de1cfed7cd1815cf0269eb4f90ad74fdf087ee
2018-11-13Rescale arf bit budget calculationJingning Han
To compute the total budget for a depth layer, exclude the count of frames that have been allocated the bit budget. This improves the avg PSNR by 0.15% and overall PSNR by 0.25% for lowres and midres test sets. Change-Id: I5115e33e1422dc930179142cd29aeebe97425283
2018-11-12quantize: use aarch64 vmaxvJohann
Simplify max value calculation on aarch64 by using vmaxv. Much faster for 4x4 but diminishing returns as the block size grows. Only the vp9 quantize has a speed test hooked up. Anticipate similar results for the other quantize versions. Before: [ RUN ] NEON/VP9QuantizeTest.DISABLED_Speed/2 [ BENCH ] Bypass calculations 4x4 31.6 ms ( ±0.0 ms ) [ BENCH ] Full calculations 4x4 31.6 ms ( ±0.0 ms ) [ BENCH ] Bypass calculations 8x8 17.7 ms ( ±0.0 ms ) [ BENCH ] Full calculations 8x8 17.7 ms ( ±0.0 ms ) [ BENCH ] Bypass calculations 16x16 14.2 ms ( ±0.0 ms ) [ BENCH ] Full calculations 16x16 14.2 ms ( ±0.0 ms ) [ OK ] NEON/VP9QuantizeTest.DISABLED_Speed/2 (1906 ms) [ RUN ] NEON/VP9QuantizeTest.DISABLED_Speed/3 [ BENCH ] Bypass calculations 32x32 18.6 ms ( ±0.0 ms ) [ BENCH ] Full calculations 32x32 18.6 ms ( ±0.0 ms ) After: [ RUN ] NEON/VP9QuantizeTest.DISABLED_Speed/2 [ BENCH ] Bypass calculations 4x4 29.1 ms ( ±0.0 ms ) [ BENCH ] Full calculations 4x4 29.1 ms ( ±0.0 ms ) [ BENCH ] Bypass calculations 8x8 16.9 ms ( ±0.0 ms ) [ BENCH ] Full calculations 8x8 16.9 ms ( ±0.0 ms ) [ BENCH ] Bypass calculations 16x16 14.1 ms ( ±0.0 ms ) [ BENCH ] Full calculations 16x16 14.1 ms ( ±0.0 ms ) [ OK ] NEON/VP9QuantizeTest.DISABLED_Speed/2 (1803 ms) [ RUN ] NEON/VP9QuantizeTest.DISABLED_Speed/3 [ BENCH ] Bypass calculations 32x32 18.6 ms ( ±0.0 ms ) [ BENCH ] Full calculations 32x32 18.6 ms ( ±0.0 ms ) Change-Id: Ic95812b3fdbd4e47b4dcb8ed46c68a9617de38d2
2018-11-11Merge "Refactor common code in RDMULT computation"Yaowu Xu
2018-11-09Refactor common code in RDMULT computationYaowu Xu
Change-Id: I2b59ba26fdb1f75302c457c90817398acaa28975
2018-11-07Merge "Simplify rdmult computation"Yaowu Xu
2018-11-07Merge "vp9-screen-content: Adjust condition for large search area"Marco Paniconi
2018-11-07Simplify rdmult computationYaowu Xu
Recognizing that max dc_quant used in rdmult computation is 21387 and 21387 * 21387 * 88 / 24 is still within the range of int32_t, this commit simplifies the computation with minor cleanups. Change-Id: I2ac7e8315d103c0bb39b70c312c87c0fda47b4f9
2018-11-07vp9-screen-content: Adjust condition for large search areaMarco Paniconi
Account for dropped frame, and change resolution threshold for limiting split below 16x16. Change-Id: If94cfb2bc24d9103332d1c8d945daca8899db33d