summaryrefslogtreecommitdiff
path: root/vp9/encoder
AgeCommit message (Collapse)Author
2018-12-11Merge "Clean up condition logics in rc_pick_q_and_bounds_two_pass()"Jingning Han
2018-12-10Clean up condition logics in rc_pick_q_and_bounds_two_pass()Jingning Han
Factor out common conditions for better readability. Change-Id: I2a2b576e7d3e5cf036e9e355fc7ce0509ecb3d7e
2018-12-11Merge "Remove redundant code about motion vector test"Hui Su
2018-12-10Remove redundant code about motion vector testHui Su
Only need to set find_fractional_mv_step once. Change-Id: Ib59dd1e3bb8bc973f2e0f3fc436738bfaf2fad81
2018-12-10Merge "Add enum definition for subpel search precision"Hui Su
2018-12-10Merge "vp9 screen: Update motion search offset when set to NSTEP."Jerome Jiang
2018-12-10Merge "vp9 svc: add test for scaling partition on 1080p crash."Jerome Jiang
2018-12-08Merge "Add satd avx2 implementation"Sai Deng
2018-12-07vp9 svc: add test for scaling partition on 1080p crash.Jerome Jiang
BUG=webm:1578 Change-Id: Ie03ed454394933fa89f751edc6928651393f3f12
2018-12-07vp9 screen: Update motion search offset when set to NSTEP.Jerome Jiang
Search method and step parameter might be changed in speed settings. In this case, we should update the search area offset due to the change of search method. Change-Id: I51dc584bbf35e998757da326355dd4b8a4d0093f
2018-12-07Add enum definition for subpel search precisionHui Su
To improve readability. Change-Id: Idc08b2068c7d8ba9dadc0d559a3b4d61c2a88c94
2018-12-07Merge "Optimize RDMult"Yaowu Xu
2018-12-06Add satd avx2 implementationsdeng
Speed Test: C/SatdHighbdTest blocksize: 16 time: 138 us blocksize: 64 time: 315 us blocksize: 256 time: 1120 us blocksize: 1024 time: 3955 us AVX2/SatdHighbdTest blocksize: 16 time: 89 us blocksize: 64 time: 189 us blocksize: 256 time: 590 us blocksize: 1024 time: 1912 us Change-Id: I6357174462fccd589a475b13d8114b853cab5383
2018-12-06Implement find_prev_nb_full_mvsAngie Chiang
In single_motion_search, we use prev coded nb full mvs to compute mv inconsistency. lambda is set to block_area / 4. This is a draft. Will to experiments to figure out the impact on coding efficiency and visual quality. Change-Id: Id10f72b3c7e6085bfbe1a6156b9fd6917843d001
2018-12-06Implement get_full_mv()Angie Chiang
Change-Id: Icde1b01ea7f64e2c43dcd039cc37fd306e43030f
2018-12-06Pass mv_num into vp9_nb_mvs_inconsistency()Angie Chiang
This allow av1_nb_mvs_inconsistency to cope with variant number of motion vectors. Change-Id: I391aa322d458cfefaf640e7b07d5ad5ce2d3375c
2018-12-05Optimize RDMultYaowu Xu
This commit introduces the optimized RDMult values for both key and non-key frames. For key frames, the commit gets values back from commit#b13f6154df9c0834d74f7e3d41e41c4208f56d18. For impact on key frame only encodings, see commit message for that commit. For inter frames, the values get optimzied by running encoding tests in Q mode with the following range using 150 frames: 2 6 10 14 18 22 26 30 34 38 42 46 50 54 58 62 The impact of current set of RDMULT values: PSNR SSIM PSNR-HVS lowres: -0.325% 0.422% -0.228% midres: -0.377% 0.158% -0.376% hdres: -0.309% 0.522% -0.322% Test baseline is on commit#35617458 Overall, the values help PSNR based metrics, but hurt SSIM metric slightly. Change-Id: I7eba37a6524cb36b8498a1d104d2667781bc2089
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