summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2019-01-14Fix segmentation fault in hbd pathDeepa K G
When CONFIG_VP9_HIGHBITDEPTH is enabled, lowbd modules were called in the hbd path. This patch fixes the issue. (cherry picked from commit 797ec1cd66c04fd335adba8ecc01dc93eab1898e) BUG=webm:1589 Change-Id: I1caf701514dbf80eb75b953f40b1e7238f265a2c
2019-01-07vp9_get_blockiness: resolve missing declarationJohann
BUG=webm:1584 Change-Id: I719c64734f4eae07def2d700006834a2420891a7
2019-01-07fix vp9 fdct_quantJohann
Values in [q]coeff1 were not correctly stored. This caused a segfault in the sse2 libvpx__nightly_optimization jobs. Broken in: commit 85032bac388917916f7a149173db8b34e93e8f6e Author: Johann <johannkoenig@google.com> Date: Fri Dec 21 00:27:00 2018 +0000 fdct_quant: resolve missing declarations BUG=webm:1584 Change-Id: I5f5fad34ec5e32023f5b40ff3691125754c11ced
2019-01-04Merge "VP9 firstpass: Bugfix when mi_col_start/end is odd"Urvang Joshi
2019-01-04VP9 firstpass: Bugfix when mi_col_start/end is oddUrvang Joshi
Before this patch, if mi_col_end was odd, then the for loop for 'mb_col' was looping once LESS than it should have been. For example, if mi_col_end = 47, then the loop was terminating when mb_col == 23. However, the correct behavior would be to terminate when mb_col == 24. The issue was introduced in: https://chromium-review.googlesource.com/c/webm/libvpx/+/423279 This can lead to many of the stats being inaccurate, for such videos (with mi_col_start/end having an odd value). As an example: Even for very static content, fp_acc_data->intercount can never reach the same value as num_mbs. And in turn, pcnt_inter can never reach the value 1 (that is, 100%). This would lead to very static videos NOT being marked static, and encoded like regular videos. Note: this is just one possible effect based on observation. Other issues are also possible based on other stats. Improvement on some test clips: ------------------------------- - One test clip saw a gain of -2.580% in VBR mode (and -3.153% in Q mode). The reason for improvement: a wrongly detected scene cut was avoided due to corrected value in 'this_frame->pcnt_inter'. - Some very static clips correctly marked as having 100% zero motion. This avoided addition of unncecessary alt-refs, thereby reducing the bitrate. BDRate (PSNR) on regular sets (VBR mode): ----------------------------------------- lowres: 0.0 midres: -0.027 (some clips were better/worse, but I double checked that changes were as expected, given correction in stats calculation). hdres: 0.0 STATS_CHANGED for the types of videos described above. Change-Id: Ifbc2c0c0815d23ec4015475680bdf8886f158dcc
2019-01-03Increase memory size in non-greedy-mvAngie Chiang
The smallest block size of motion field is 4x4, but the mi_unit size is 8x8, therefore the number of units of motion field is "mi_rows * mi_cols * 4". Change-Id: I95292904d757705d39b78af5d0cf2d25f376c642
2019-01-03Build pyramid motion fieldAngie Chiang
Change-Id: I43fd61f7946a8a96d444dab5e94a9b01483ffab7
2018-12-27Adaptively choose block sizes in temporal filteringYunqing Wang
Use variable block sizes in temporal filtering. Based on prediction errors of 32x32 or 16x16 blocks, choose the block size adaptively. This improves the coding performance, especially for HD resolutions. Speed 1 borg test result: avg_psnr: ovr_psnr: ssim: lowres: -0.090 -0.075 -0.112 midres: -0.120 -0.107 -0.168 hdres: -0.506 -0.512 -0.547 Change-Id: I8f774e29ecb2e0dd372b32b60c32d8fa30c013a8
2018-12-22Revert "Add Tile-SB-Row based Multi-threading in Decoder"James Zern
This reverts commit 02b3ef7faee5be5ee519856fbb3523d3ab49f6e7. Reason for revert: fails to build under visual studio Original change's description: > Add Tile-SB-Row based Multi-threading in Decoder > > Add the multi-thread function that decodes a video row by row instead > of a tile at a time. Create a job queue for queueing all parse and recon jobs. > Each SB row of a tile is a job. > > Performance Improvement: > > Platform Resolution 3 Threads 4 Threads > ARM 720p 36.81% 18.37% > 1080p 32.27% 14.76% > > ARM Improvement measured on Nexus 6 Snapdragon 805 Quad-core @ 2.65 GHz > > Change-Id: I3d4dd7a932fc2904c90d9546b2de99c809afd29e BUG=webm:1587 Change-Id: Ia4c8f5128922a205cd9fd83aaef8a2e73764d4a7
2018-12-21Merge "vp9_decodeframe.c: resolve missing declarations"Johann Koenig
2018-12-21vp9_highbd_block_error_sse2: resolve missing declarationsJohann
BUG=webm:1584 Change-Id: I43d051c538bf4a6f6210eefa398dc0901ab8d157
2018-12-21vp9_decodeframe.c: resolve missing declarationsJohann
BUG=webm:1584 Change-Id: Ie0d26b745ab1f5907a6a2dc10fbc5083f3fb0b8d
2018-12-21Merge "Refactor temporal filtering"Yunqing Wang
2018-12-21Merge "fdct_quant: resolve missing declarations"Johann Koenig
2018-12-21Merge "Add Tile-SB-Row based Multi-threading in Decoder"Harish Mahendrakar
2018-12-21Merge "vp9: limit lpf workers to min(threads,tiles,sb_rows)"James Zern
2018-12-21fdct_quant: resolve missing declarationsJohann
Store outputs using store_tran_low() BUG=webm:1584 Change-Id: I213abe047e14625c5ef80df7fa6fdc2a31e40fb6
2018-12-20Refactor temporal filteringYunqing Wang
Refactored temporal filtering, so that it was not hard-coded to 16x16 block size. Change-Id: I06d0787660ff6eee6a8f02a846ad0e26c6825f54
2018-12-20Merge "vp9/encoder: resolve missing declarations"Johann Koenig
2018-12-20vp9/encoder: resolve missing declarationsJohann Koenig
Mark local functions as 'static.' Found with -Wmissing-declarations BUG=webm:1584 Change-Id: Icbdb0ceca3dbf3005ca29bfda05d533d241577d0
2018-12-20Merge "Remove a special case"Yaowu Xu
2018-12-20vp9: limit lpf workers to min(threads,tiles,sb_rows)James Zern
this implementation does not scale well beyond that. this restores the performance in v1.7.0. BUG=webm:1574 Change-Id: I8f3464cfe871988fa06ebefe9954811fd002584e
2018-12-20Merge "Unify AQ mode rdmult update interface"Jingning Han
2018-12-20Merge "Add control interface to PSNR_AQ mode"Jingning Han
2018-12-20Remove a special caseYaowu Xu
The special case was put in to prevent a lossless test failure, the issue has been dealt with by a recent fix of skip condition in lossless mode. Change-Id: Ia25d2bf6beead2208841b4f012171dffac15f411
2018-12-20Merge "Refactor aq mode segment_id assignment"Jingning Han
2018-12-19Merge "Correct condition for skip"Yaowu Xu
2018-12-19Unify AQ mode rdmult update interfaceJingning Han
Handle the rdmult update for all AQ modes in a single function call. Change-Id: Ia0dfce637cf70d646bd3cd0abe3064e9491b81b8
2018-12-19Add control interface to PSNR_AQ modeJingning Han
Change-Id: I760c69189fb8d8d85b5daffc86064c66913c0220
2018-12-19Correct condition for skipYaowu Xu
Do not skip without check when lossless is requested. Change-Id: Iceda428e7bf5ab19202b1dcb598e389fcaf6978d
2018-12-19Merge "Rework set_offsets() for rd search"Jingning Han
2018-12-19Merge "Improve rd_variance_adjustment() for low variance blocks."Paul Wilkins
2018-12-18Refactor aq mode segment_id assignmentJingning Han
Factor out the segment_id assignment for various AQ modes. Change-Id: I34a86524048621cd369baf4bafbdfac621994563
2018-12-18Rework set_offsets() for rd searchJingning Han
Factor out the segment_id setup from mi array alignment. Change-Id: I345ad7ea7b6c9edb6f86224e1941f2c954d68ff3
2018-12-18vp9-svc: Adjust step_param for screen-contentMarco Paniconi
Use same step_param for all spatial layers for now. Some improvement in quality on scrolling for spatial enhancement layer. Change-Id: Ic9eed8ba5dd44493e9f5e81f6115df2a25825d16
2018-12-18Merge "Localize x->encode_breakout setup to non-rd mode search"Jingning Han
2018-12-18Merge "Add frame header control to turn on PSNR_AQ mode"Jingning Han
2018-12-18Merge "Add PSNR_AQ mode"Jingning Han
2018-12-18Add Tile-SB-Row based Multi-threading in DecoderRitu Baldwa
Add the multi-thread function that decodes a video row by row instead of a tile at a time. Create a job queue for queueing all parse and recon jobs. Each SB row of a tile is a job. Performance Improvement: Platform Resolution 3 Threads 4 Threads ARM 720p 36.81% 18.37% 1080p 32.27% 14.76% ARM Improvement measured on Nexus 6 Snapdragon 805 Quad-core @ 2.65 GHz Change-Id: I3d4dd7a932fc2904c90d9546b2de99c809afd29e
2018-12-18Merge "Relocate tpl buffer allocation"Jingning Han
2018-12-17Relocate tpl buffer allocationJingning Han
Move it to deeper stages where all the encoder configurations have been set. This avoids the encoding failure when the buffer is allocated before the encoder is fully configured. Change-Id: I6723966fd2c7c36fbab9a92d1f3bd59c83ed95f0
2018-12-17vp9-svc: Fix condition in real-time speed settingMarco Paniconi
Remove the "spatial_layer_id == 0" condition in the speed features for setting the motion search for screen content. Change-Id: Ib47aea3af5f3b2e04226694b4126b2ae2f458f13
2018-12-17Localize x->encode_breakout setup to non-rd mode searchJingning Han
The breakout speed feature is currently only used by the non-rd mode search path. Localize it to simplify set_offset() logic. Change-Id: I27e7519c987a7caac2e4bd6be0ede1b9c8320e55
2018-12-17Add frame header control to turn on PSNR_AQ modeJingning Han
Change-Id: I46f695b15153c8c508f525a5673db24326371977
2018-12-17Add PSNR_AQ modeJingning Han
Placeholder to support adaptive quantizer for PSNR and SSIM coding quality improvement. Change-Id: Id967c9914bb1d72a6f480ef1ba9d6650914dd658
2018-12-17vp9-svc: Adjust search step param for spatial layersMarco Paniconi
For non-base spatial layer in screen-content mode: use nstep but with larger step_param value than sl0, to avoid increase in encode_time. Some improvement on scrolling slides content. Change-Id: Ica918ac01664431d1fabb3c674d857cf6ad87414
2018-12-17vp9-svc: Define rc scene change flag per superframeMarco Paniconi
Define the rc->high_num_blocks_with_motion, set in the scene change analysis, to be defined per superframe. This is used for increasing motion search area on some (super)frames, e.g., for scrolling. Also some code cleanup in rt_speed_feature_. No change in behavior. Change-Id: I1a5c04b9cd4aef1723ce42f82e981a2ca15c8b9d
2018-12-17Merge "Add build_motion_field()"Angie Chiang
2018-12-13vp9-svc: On scene change: only reset TL in flexible mode.Marco Paniconi
On scene/slide change detected on TL > 0 frame, only reset the temporal layer pattern for flexible/bypass mode. Change-Id: Ib848778addc10ef6981b92839af397833fd4a908
2018-12-13Merge "Make the use of tpl model controlled by the encoder params"Jingning Han