summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2018-10-12Merge "Make 4-tap interp filter coefficients even numbers"Yunqing Wang
2018-10-12Make 4-tap interp filter coefficients even numbersYunqing Wang
This CL modified 4-tap interp filter coefficients to be even numbers, which would help in writing 4-tap filter SIMD optimizations. The coding performance change was negligible. Speed 1 borg test showed: avg_psnr: ovr_psnr: ssim: lowres: -0.003 -0.012 -0.017 midres: 0.029 0.018 0.043 hdres: 0.024 0.044 0.033 Change-Id: Id7c54bb9a9c1aee19c41bc6f1dc3b9682d158bba
2018-10-11Merge "ML_VAR_PARTITION: adjust model threshold"Hui Su
2018-10-11Merge "Call tpl model build at the beginning of a GOP"Jingning Han
2018-10-11Merge changes Ia5978d91,I3e3754f3Angie Chiang
* changes: Simplify mode_estimation / tpl_model_store Move [inter/intra]_cost change to mode_estimation
2018-10-11Merge "Loopfilter Multi-Thread Optimization"Harish Mahendrakar
2018-10-10Call tpl model build at the beginning of a GOPJingning Han
The gop index 0 is default as kf / gf. The effective first coding frame controlled by the current GOP rate allocation is indexed 1. Call the tpl model build for the current GOP once at index 1 position. This would unify the calling system for single/multi-layer ARF GOP structure. Change-Id: I4ce69337e04646098d5513c0aa56b4e0b4483337
2018-10-10Merge "Use 4-tap interp filter in speed 1 sub-pel motion search"Yunqing Wang
2018-10-09Simplify mode_estimation / tpl_model_storeAngie Chiang
1) Let mode_estimation() save the results into tpl_frame directly 2) In tpl_model_store(), replace copies of tpl_stats parameters by memset() Change-Id: Ia5978d91cb60cf896bd53d3f27701ef9ae3ba09a
2018-10-09Move [inter/intra]_cost change to mode_estimationAngie Chiang
Change-Id: I3e3754f349d31d17554f02bd14cd34620057ddcb
2018-10-09Merge changes I67700eba,I9e8f8ed3,Id93565ccAngie Chiang
* changes: Move feature_score into an independent for loop Add set_mv_limits() Move lambda into TplDepFrame
2018-10-09Use 4-tap interp filter in speed 1 sub-pel motion searchYunqing Wang
Added the 4-tap interp filter, and used it for speed 1 sub-pel motion search. Speed 2 motion search still used bilinear filter as before. Speed 1 borg test showed good bit savings. avg_psnr: ovr_psnr: ssim: lowres: -1.125 -1.179 -1.021 midres: -0.717 -0.710 -0.543 hdres: -0.357 -0.370 -0.342 Speed test at speed 1 showed ~10% encoder time increase, which was partially because of no SIMD version of 4-tap filter. Change-Id: Ic9b48cdc6a964538c20144108526682d64348301
2018-10-09Add accurate sub-pel motion searchYunqing Wang
Added the accurate sub-pel motion search. In this patch, used the 8-tap filter in sub-pel motion search, and this was enabled at speed 0. Speed 0 borg test showed that avg_psnr: ovr_psnr: ssim: lowres: -1.363 -1.403 -1.282 midres: -0.842 -0.849 -0.720 hdres: -0.480 -0.488 -0.503 Speed test at speed 0 showed ~8% encoder time increase. Change-Id: I194ca709681ea588f3f6381093940e22d03c4d7b
2018-10-09Merge "Set up the unit scaling factor for motion search"Yunqing Wang
2018-10-08Move feature_score into an independent for loopAngie Chiang
We aim at change the mv search order according to feature_score This is part of the change. Change-Id: I67700eba014df92190eabc78060cf29adf0fc38b
2018-10-08Add set_mv_limits()Angie Chiang
Change-Id: I9e8f8ed3eb150b3af1f465f595000bd05d43f3f6
2018-10-08Set up the unit scaling factor for motion searchYunqing Wang
Set up the unit scaling factor used during motion search. Change-Id: I6fda018d593b7ad4b7658d44c39be950a502d192
2018-10-08Loopfilter Multi-Thread OptimizationSupradeep T R
Take the original loopfilter multi-thread optimization (dafe064289a917977439ab6f4f002b9946496084) along with the fixes for bugs 1558 and 1562. BUG=webm:1558 BUG=webm:1562 Change-Id: Ibbf6bd13f4ffff0e79184ccfd6b85a49e067a6d8
2018-10-08Move lambda into TplDepFrameAngie Chiang
Change-Id: Id93565cca41e00d4ab5de4c6de30accabf2adc52
2018-10-08Merge "Avoid null checks related to pool->frame_bufs."Wan-Teh Chang
2018-10-08Merge "Correct a for loop in init_ref_frame_bufs."Wan-Teh Chang
2018-10-08Merge "Turn on ml_var_partition_pruning for speed 1"Hui Su
2018-10-08Correct a for loop in init_ref_frame_bufs.Wan-Teh Chang
The cm->ref_frame_map and pool->frame_bufs arrays are of different sizes (REF_FRAMES and FRAME_BUFFERS, respectively), so init_ref_frame_bufs() cannot iterate over these two arrays using the same for loop. Change-Id: Ica5bbd9d0c30ea3d089ad2d4bcf6cd8ae2daea64
2018-10-08Avoid null checks related to pool->frame_bufs.Wan-Teh Chang
It seems that null pointer checks such as the following may make clang scan-build think pool->frame_bufs may be a null pointer: buf = (buf_idx != INVALID_IDX) ? &pool->frame_bufs[buf_idx] : NULL; if (buf != NULL) { This "misinformation" may make scan-build warn about the ref_cnt_fb() function's use of its 'bufs' argument (Dereference of null pointer) when we pass pool->frame_bufs to ref_cnt_fb(). Rewriting the above code as: if (buf_idx != INVALID_IDX) { buf = &pool->frame_bufs[buf_idx]; not only is clearer but also avoids confusing scan-build. Change-Id: Ia64858dbd7ff89f74ba1a4fc9239b0c4413592c8
2018-10-08Merge "Changes to facilitate accurate sub-pel motion search"Yunqing Wang
2018-10-06Merge "Fix bug in prepare_nb_full_mvs"Angie Chiang
2018-10-05Turn on ml_var_partition_pruning for speed 1Hui Su
Coding loss: lowres 0.08%; midres 0.11%; hdres 0.07% Average encoding speedup is about 6%. Change-Id: I950291cf0f1d610bcdedeb150bcbefea2f5579bc
2018-10-05ML_VAR_PARTITION: adjust model thresholdHui Su
Make decisions more aggressively to improve encoding speed. Coding gains(avg-psnr) after this change over baseline: rtc 1.55% for speed 7; 2.89% for speed 8. ytlivehr 2.20% for speed 6. Change-Id: If6ac4a942a5b4708bcc6b0a49bd92fbc4d67c3f8
2018-10-05Changes to facilitate accurate sub-pel motion searchYunqing Wang
This patch included changes to facilitate accurate sub-pel motion search. More patch will follow to turn on accurate sub-pel motion search. Change-Id: I224c28c338353fe5c7609372162f79885c54248f
2018-10-04Fix bug in prepare_nb_full_mvsAngie Chiang
Previously, the prepare_nb_full_mvs might construct nb_full_mv with wrong mvs (from other ref frame). The following changes will fix the bug. 1) Let ready in TplDepStats becomes int array 2) Add parameter rf_idx 3) Use mv_arr instead of mv to build the nb_full_mv Change-Id: I199798aec4c6762d54799562e142457cc26ee043
2018-10-04Merge "Clean up vp9_firstpass.h"Jingning Han
2018-10-04Merge "Add mv_{dist/cost}_sum to TplDepFrame"Angie Chiang
2018-10-03Clean up vp9_firstpass.hJingning Han
Remove unused functions and macros. Change-Id: I46458a60f75637c66af0e18ad876a2634e5818bb
2018-10-03Merge changes I66b35ef7,Ic9ed6ed6,Ie5818689Angie Chiang
* changes: Add mv_dist/mv_cost to TplDepStats Change interface of motion_compensated_prediction Separate lambda from nb_mvs_inconsistency()
2018-10-02Merge "Force even arf group length where possible."Jingning Han
2018-10-02Merge "Keep metric log only for the displayable frames"Jingning Han
2018-10-02Merge "Fix vpxenc per frame psnr and ssim print"Jingning Han
2018-10-02Force even arf group length where possible.Paul Wilkins
This patch tweaks the calculation of the active maximum GF interval and also the break out clause for the GF interval loop. The changes force the maximum and where possible the break out value to be odd which in turn will result in an even length ARF group if ARF coding is selected (vs GF only coding). The primary aim was to improve coding with multi layer arf groups. For the single layer case there are small net gains in 3 out of 4 sets (low,md, hd) and a small net drop for the NF2K set. For multi-layer the gains (opsnr, ssim, psnr-hvs : -ve = better) were:- Low res: -0.109, -0.038, -0.036 Mid res: -0.204, -0.171, -0.242 Hd res: -0.330, -0.471, -0.496 NF 2k: -0.165, -0.149, -0.157 Change-Id: I245f8561f5d1bd34312a0133c670c2154a0da23f
2018-10-01Keep metric log only for the displayable framesJingning Han
The end-to-end reconstruction quality is represented only by the displayable frames. Drop the coding stats from ARF frames. Change-Id: Ib8241db448611f4b6477f107930eaa273f960e20
2018-10-01Fix vpxenc per frame psnr and ssim printJingning Han
Fix compiler error and make the encoder properly log the psnr and ssim. Change-Id: I7b35541131acaa60117bb1e458508b82a4b4677e
2018-10-01Introduce the ml_var_partition_pruning featureHui Su
Add the ml_var_partition_pruning encoder speed feature that uses a neural net model to prune partition-none and partition-split search. The model uses prediction residue variance and quantization step size as input features. Encoding speed gain for speed 0(tested over 20 hdres clips): QP=30 QP=40 average 17.7% 18.3% max 24.46% 26.6% Coding loss: lowres 0.071%; midres 0.098%; hdres 0.163% Currently it is enabled for speed 0 low-bit depth only. It needs to be tuned for other settings. Change-Id: Ifb7417daa6bb6e7c97bb676269ce54ab0dc7b8c8
2018-09-29Merge "Remove deprecated get_arf_buffer_indices()"Jingning Han
2018-09-29Merge "Remove deprecated arf_update_index from GF_GROUP"Jingning Han
2018-09-29Merge "Add ml_var_partition experiment"Hui Su
2018-09-28Merge changes I93308a09,If85c36b4,I918eb36aAngie Chiang
* changes: Add vpx_clear_system_state to new mv search func Change mv color to red Call vp9_full_pixel_diamond_new in tpl mv search
2018-09-28Add mv_{dist/cost}_sum to TplDepFrameAngie Chiang
Change-Id: Iacce1f88630ba93ff72d745a83dd4b853b6b61af
2018-09-28Add mv_dist/mv_cost to TplDepStatsAngie Chiang
Change-Id: I66b35ef76c229d4eb3bf3c913619a0e219c4c2f9
2018-09-28Change interface of motion_compensated_predictionAngie Chiang
Change the interface of vp9_full_pixel_diamond_new Change-Id: Ic9ed6ed61c5178f3f445f40860ebaac7ea17f75d
2018-09-28Separate lambda from nb_mvs_inconsistency()Angie Chiang
Change-Id: Ie5818689233ae01742ca595e2c8c3f3664bb426c
2018-09-28Remove deprecated get_arf_buffer_indices()Jingning Han
Change-Id: I6d0c8a1a61d861aa0353cde76a833c7c0b222279