summaryrefslogtreecommitdiff
path: root/vp9/encoder
AgeCommit message (Collapse)Author
2018-12-04Fix the parameter of vp9_full_pixel_diamond_newAngie Chiang
Change-Id: I36b970953c960fde65d7b7705ccfa575c8741c43
2018-12-04Merge "vp9: force refresh of long term ref when denoiser reset."Jerome Jiang
2018-12-04vp9: force refresh of long term ref when denoiser reset.Jerome Jiang
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
2018-12-04Merge "Clean up rc_pick_q_and_bounds_two_pass()"Jingning Han
2018-12-03vp9-svc: Fix to postencode drop for layers.Marco Paniconi
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
2018-12-03Merge "vp9: Rename post_encode drop function."Marco Paniconi
2018-12-03vp9: Overshoot detection for skipped base layer.Marco Paniconi
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
2018-12-03vp9: Rename post_encode drop function.Marco Paniconi
Feature works also for non-screen content mode, so rename it. Change-Id: I665362d50cf9a4017f114973586ad0eead066ddd
2018-11-30Merge "Simplify constant q mode qp selection"Jingning Han
2018-11-30Clean up rc_pick_q_and_bounds_two_pass()Jingning Han
Remove unneeded VPX_Q condition check. Change-Id: I46b09ae522caa47fa7ea4441b6a6ac2840315d1c
2018-11-30Merge changes I18680413,Iebe38092Angie Chiang
* changes: Consider mv inconsistency in single_motion_search Change the interface of vp9_full_pixel_diamond_new
2018-11-30Simplify constant q mode qp selectionJingning Han
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
2018-11-29Factor key frame qp selection from two-pass qp and bound decisionJingning Han
Factor out this common code needed all rate control modes. Change-Id: If17850fbebcdce7ff24afb211aa2e6054486b814
2018-11-29Consider mv inconsistency in single_motion_searchAngie Chiang
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
2018-11-29Change the interface of vp9_full_pixel_diamond_newAngie Chiang
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
2018-11-29Revert "Optimize RDMULT values for key frames"Jingning Han
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
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_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