summaryrefslogtreecommitdiff
path: root/vp9/encoder
AgeCommit message (Collapse)Author
2019-06-28Merge changes I833c82fb,I05a39165,Ie044bb01,I565f477fAngie Chiang
* changes: Integerize vp9_full_pixel_diamond_new Integerize vp9_refining_search_sad_new Integerize diamond_search_sad_new() Refactor vp9_full_pixel_diamond_new
2019-06-27vp9_encodeframe: quiet a few integer sanitizer warningsJames Zern
implicit conversion from type 'int' of value -2 (32-bit, signed) to type 'uint8_t' (aka 'unsigned char') changed the value to 254 (8-bit, unsigned) BUG=webm:1615 Change-Id: I9b8f5a9df3211e344e91d67a45d321e7115f5d4a
2019-06-27Merge "Change parameters for highbd tune=ssim"Sai Deng
2019-06-26Integerize vp9_full_pixel_diamond_newAngie Chiang
Change-Id: I833c82fb910c8274b5a237e26fe0dcda7def9796
2019-06-26Integerize vp9_refining_search_sad_newAngie Chiang
Change-Id: I05a39165b9910262eca8fdf644ae982b80d309b4
2019-06-26Integerize diamond_search_sad_new()Angie Chiang
Change-Id: Ie044bb01e26d871bace309ae1f45aa880ea1de62
2019-06-26Refactor vp9_full_pixel_diamond_newAngie Chiang
Remove redundant bestsme assignments Change-Id: I565f477f51c2a13369ebd1532eed05115e774238
2019-06-26Remove mv_dist/mv_cost from new mv search funcsAngie Chiang
The functions are diamond_search_sad_new() vp9_full_pixel_diamond_new() vp9_refining_search_sad_new() Change-Id: Ied6fe98b8a1401c95f0488faf781c5cd5e8e0db6
2019-06-26Speed up diamond_search_sad_newAngie Chiang
The percentage of encoding time spent on diamond_search_sad_new reduces from 8% to 6% Change-Id: I1be55b957475d780974cc2e721f8c2d4d266e916
2019-06-26Let full_pixel_exhaustive_new return int64_tAngie Chiang
Change-Id: I2c7cd7363a1b61b7aa7c35fd9f4e6b926b67418f
2019-06-24Change parameters for highbd tune=ssimsdeng
With this CL: PSNR SSIM MS-SSIM lowres_10bd 2.8 -5.6 -6.5 midres_10bd 2.6 -5.6 -6.3 Before this CL: PSNR SSIM MS-SSIM lowres_10bd 6.1 -6.5 -7.7 midres_10bd 6.2 -6.0 -7.2 Change-Id: Iad0ad96d55ad140db00ce86c34ab85461cd963eb
2019-06-21Integerize exhaustive_mesh_search_new()Angie Chiang
Change-Id: Ia87ed60f46384e7bb7c5f55e9e28c406562a6f19
2019-06-21Make vp9_nb_mvs_inconsistency return int64_tAngie Chiang
Change-Id: I925156ed45e13a06c449c2fbff8a3c26baf8d835
2019-06-21Make type of lambda int in TplDepFrameAngie Chiang
Change-Id: I8fdf1ad4790201b1624c8408d92983aeb0b08302
2019-06-20Integerize log2_approximation()Angie Chiang
Change-Id: If645bf6a90f4bfb5a51ca0a78b88d1eb5bedbec2
2019-06-20Merge "Change log2_fast to log2_approximation"Angie Chiang
2019-06-20Merge "Start with q=active_best_quality for non-forced key frames"Ravi Chaudhary
2019-06-20Start with q=active_best_quality for non-forced key framesRavi Chaudhary
Change-Id: I435d247ab4d1d160f12f5a3710e6cafb5cfd6610
2019-06-19Change log2_fast to log2_approximationAngie Chiang
This reduce non_greedy_mv encoding time by 8.9% Use linear approximation for value >= 1024 BDRate increases slightly on hdres lowres: -0.002 midres: 0.007 hdres: 0.057 Change-Id: I55fd5e0bf0ab2206a286e11974f701cc48084be8
2019-06-18Implement log2_fast for vp9_nb_mvs_inconsistencyAngie Chiang
This speed up non_greedy_mv by 8.7% Change-Id: Ia46e3e7c4d32ec364091fad26cc953c62963e526
2019-06-14Merge "Use previous ARF as GOLDEN frame for the next GOP"Deepa K G
2019-06-11Use previous ARF as GOLDEN frame for the next GOPDeepa K G
This patch uses ARF itself as the GOLDEN frame for the next gf group instead of replacing it with the overlay frame. By doing so, bits consumed by the overlay frame will be reduced. Change-Id: I909ceaa6d501c267d315614075913d45ad426c15
2019-06-06Update performance test results for tune=SSIMsdeng
I made a mistake (used the outdated baseline) in the CL I submitted earlier this week: https://chromium-review.googlesource.com/c/webm/libvpx/+/1638854 The corrected results are following: The additional gains/loss on top of the tune=ssim are: Data Set Overall PSNR SSIM MS-SSIM Lowres 3.490 -3.164 -2.267 Midres 2.245 -2.270 -2.287 HDres 2.562 -1.804 -1.681 Lowres_10bd 3.477 -2.399 -2.689 Midres_10bd 3.467 -1.534 -1.636 The overall gains/loss comparing to tune=psnr are: Data Set Overall PSNR SSIM MS-SSIM Lowres 6.127 -5.818 -4.783 Midres 4.574 -5.383 -6.242 HDres 4.908 -6.218 -7.106 Lowres_10bd 6.115 -6.212 -7.790 Midres_10bd 6.238 -6.064 -7.249 Change-Id: Iae72482f7b30f200e5021a98c920eed841d0972a
2019-06-05Fix a bug in best RD cost updatingsdeng
This CL fixed a bug that sometimes we calculate the best rd cost using uninitialized rd_div. This CL also includes a small refactoring of rd_pick_partition(). Speed change: (the smaller the better) Performance counter stats for './vpxenc park_joy_480p.y4m --limit=50 -o output.webm': with this CL: 297,086,181,136 instructions:u without this CL: 299,285,835,104 instructions:u Quality change: (negative is better) avg_psnr ovr_psnr ssim (low_res) 0.007 0.005 -0.002 (mid_res) 0.022 0.028 0.007 (hd_res) -0.008 -0.003 -0.014 Change-Id: I8924d8426364304212bcef3aba13346783e6f1a8
2019-06-04Merge "Hierarchical rdmult scaling when tune=ssim"Sai Deng
2019-06-03Hierarchical rdmult scaling when tune=ssimsdeng
Use different lagrangian multiplier scaling factor for different block size. The blocks whose sizes are less than 16x16 share the same multiplier of their parent block. The additional gains/loss on top of the tune=ssim are: Data Set Overall PSNR SSIM MS-SSIM Lowres 2.918 -3.691 -2.596 Midres 1.708 -2.656 -2.624 HDres 1.619 -2.496 -2.391 Midres_10bd 1.518 -3.263 -3.561 The overall gains/loss comparing to tune=psnr are: Data Set Overall PSNR SSIM MS-SSIM Lowres 5.583 -6.208 -4.978 Midres 4.024 -5.610 -6.411 HDres 4.102 -6.614 -7.457 Midres_10bd 4.647 -7.181 -8.614 Change-Id: I0e6c5008488734e979b2dacde9fc2a17f3aa620f
2019-06-03Merge "Remove unused func for CONFIG_REALTIME_ONLY"Jerome Jiang
2019-06-03Remove unused func for CONFIG_REALTIME_ONLYJerome Jiang
Change-Id: I503e147e20e5b69b910c425d169e59821874f627
2019-06-03Merge changes I7b1d1482,I01588758,I6f17864eSai Deng
* changes: Update rdcost using the rd_mult in current block Use distortion and rate of best_rd as the params Use distortion and rate recursively in rd_pick_partition()
2019-06-01Update rdcost using the rd_mult in current blocksdeng
This CL is a preparation for implementing hierarchical SSIM rdmult scaling. There is very little impact on metrics and speed: avg_psnr ovr_psnr ssim midres 0.009 0.009 0.015 perf stat -e instructions:u ./vpxenc park_joy_480p.y4m --limit=50 with this cl: 317,722,808,461 before: 317,700,108,619 Change-Id: I7b1d1482ac69f7bc87065a93223a0274bcbe8ce3
2019-06-01Use distortion and rate of best_rd as the paramssdeng
Also added rd calculation for negative rates and distortions. This CL is a preparation for implementing hierarchical SSIM rdmult scaling. Little impact on quality and speed: avg_psnr ovr_psnr ssim (mid_res) -0.015 -0.009 -0.018 perf stat -e instructions:u ./vpxenc park_joy_480p.y4m --limit=50 with this cl: 317,700,108,619 before: 317,669,279,763 Change-Id: I01588758b7be2aab32236440ec0e57d7af56e920
2019-06-01Merge "Remove RD code for CONFIG_REALTIME_ONLY in vp9."Jerome Jiang
2019-05-31Remove RD code for CONFIG_REALTIME_ONLY in vp9.Jerome Jiang
This reduces vp9 only binary size by ~5.7%. Change-Id: I57e46baf591d68b0a0cecbc9319a1190df8b0457
2019-05-31Use distortion and rate recursively in rd_pick_partition()sdeng
This CL is a preparation for implementing hierarchical SSIM rdmult scaling, There is very little impact on metrics and speed: avg_psnr ovr_psnr ssim midres -0.04 0.005 0.012 perf stat -e instructions:u ./vpxenc park_joy_480p.y4m --limit=50 with this cl: 317,669,279,763 before: 317,717,562,045 Change-Id: I6f17864e7b17aad06a04ae4f470f75e975549db9
2019-05-29Merge "Fix calculations in GF only group case"Deepa K G
2019-05-29Merge "Increase the bits allocated to key frame"Deepa K G
2019-05-28Merge "vp9-rtc: Update overshoot_detection speed feature"Marco Paniconi
2019-05-28Merge "Fix section intra rating for first ARF interval"Paul Wilkins
2019-05-27vp9-rtc: Update overshoot_detection speed featureMarco Paniconi
Keep the overshoot_detection_cbr_rt to the fast mode (FAST_DETECTION_MAXQ), except for low-resoln at speed 5, for non-screen content. The increase in encode time (from using the more accurate RE_ENCODE_MAXQ) is acceptable for speed 5 at low resoln. Change-Id: I3089d1505553154ef046056465bc18130f7bd55a
2019-05-27Fix calculations in GF only group caseDeepa K G
- Fix the number of frames considered in calculation of twopass active worst quality. For GF only group, frames considered should be one less than baseline gf interval accounting for the golden frame. - Fix in calculation of normal_frames. As baseline gf interval includes the golden frame, the number of normal frames should be one less than baseline gf interval. Change-Id: Ic752f7d13d23772687e2fa407698766b3fdf5c67
2019-05-25Merge "Revert "Fix calculations in GF only group case""James Zern
2019-05-25Revert "Fix calculations in GF only group case"James Zern
This reverts commit c87ff4a09ddf50152918c127eebf11e3a6ef7b1e. Reason for revert: causes division by zero Original change's description: > Fix calculations in GF only group case > > - Fix the number of frames considered in calculation of > twopass active worst quality. For GF only group, frames > considered should be one less than baseline gf interval > accounting for the golden frame. > - Fix in calculation of normal_frames. As baseline gf > interval includes the golden frame, the number of > normal frames should be one less than baseline gf > interval. > > Change-Id: I6c0cd0a39db23586fc390a6fba5d7aebc0dfce08 Change-Id: I522da652587ae7ca4177f6d4bb9f72abcff35637
2019-05-24Merge "Increase active best quality linearly"Jingning Han
2019-05-24Merge "Fix calculations in GF only group case"Paul Wilkins
2019-05-21Clamp for min_frame_targetJingning Han
Apply the minimum frame size clamp for all applicable frames. This avoids bit-rate undershooting issue as reported in BUG=b/133260125 Change-Id: I59ec028eee999ad5238602adf96465af7c4f4514
2019-05-21Increase the bits allocated to key frameDeepa K G
Based on the spatial complexity, increase the bits allocated to key frame. Change-Id: I4f96990a13bcc3bdb7a22d50e67e2bd622f1ff7b
2019-05-17vp9-rtc: Increase qp thresh for overshoot detectionMarco Paniconi
For video mode (non-screen) in CBR real-time mode: increase the qp thresh to trigger setting to active_worst on scene changes. Avoid big overshoots in content with scene changes. Change-Id: I74721b07b0d7b742cbef468ece70cca7da0f89eb
2019-05-16Increase active best quality linearlyRavi Chaudhary
The ARF frames in last few gf intervals, would be used as a reference by fewer ARF frames in the same kf interval. Also, the ARF frames in the last GF group would not be used as a reference in future. Hence the active best quality for these ARF frames is increased based on their temporal distance from the next key frame. Change-Id: Ice7eaa8a25384104b1d9cc021eec588c03053fc2
2019-05-16Fix calculations in GF only group caseDeepa K G
- Fix the number of frames considered in calculation of twopass active worst quality. For GF only group, frames considered should be one less than baseline gf interval accounting for the golden frame. - Fix in calculation of normal_frames. As baseline gf interval includes the golden frame, the number of normal frames should be one less than baseline gf interval. Change-Id: I6c0cd0a39db23586fc390a6fba5d7aebc0dfce08
2019-05-16Fix section intra rating for first ARF intervalDeepa K G
The section intra rating used for the frames in the first ARF interval was based on entire key frame interval. However, for subsequent ARF intervals it was based on that ARF interval. This discrepancy is fixed. Change-Id: I3df358861d720e536c9c6f15da1cbd78f2dfffbc