summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-06-05vp9: Move up reset of cyclic refresh under dynamic resize.Jerome Jiang
When resize happens and cyclic refresh is not applied on the current (resized) frame, the sb_index is not reset and then might be out of boundary on future frames when the cyclic refresh is applied. Change-Id: I05282fc4bc2323522d60e019ed0790d69221a2f7
2018-06-06Merge changes I3ba75c45,I97d26285James Zern
* changes: force-inline the convolve functions Unbreak the force inline directive for gcc
2018-06-05force-inline the convolve functionsLuca Barbato
Change-Id: I3ba75c459ed7c9591b7892e9f8f108146c04507d
2018-06-05Merge "vp9-svc: Allow usage of second (long term) temporal reference."Marco Paniconi
2018-06-04test,cosmetics: fix func/member naming, decl orderJames Zern
functions: upper camelcase members: lowercase with trailing '_' decl order: functions (overrides marked virtual), members after: 656e8ac61 VSX version of vpx_post_proc_down_and_across_mb_row 766d875b9 VSX version of vpx_mbpost_proc_ip 35e98a70b VSX version of vpx_mbpost_proc_down b2898a9ad Bench Class For More Robust Speed Tests Change-Id: Ib257bd607c5c1248d30e619ec9e8a47cc629825b
2018-06-04vp9-svc: Allow usage of second (long term) temporal reference.Jerome Jiang
Allow for second temporal reference for top spatial layer in SVC, when inter-layer prediction is disabled on INTER frames. The second temporal reference is labelled as the golden reference and the update/refresh of this reference buffer is only on base temporal layer superframes. For now the period of refresh is fixed at every 20 TL0 superframes. Average gain is ~4% on RTC set, several clips up by ~8-12%. Speed loss is about ~2% on mac. Feature is disabled as default for now. Change-Id: I2e5db5052c62dbe958a3b14be97d043823b7a529
2018-06-03Unbreak the force inline directive for gccLuca Barbato
Change-Id: I97d26285ec146628cbafd3573ca812c630c6687d
2018-06-01Merge "VP9: exclude speed 9 from VBR datarate tests."Jerome Jiang
2018-06-01VP9: exclude speed 9 from VBR datarate tests.Jerome Jiang
Change-Id: I4c4d31d013cb45e20918f4ef83ce32811d76e02b
2018-05-31Merge "VP9: Allow for bilinear subpel interp at speed 9 for high motion."Jerome Jiang
2018-05-31Merge "vp9-svc: Fix to some frame metrics for real-time mode."Marco Paniconi
2018-05-31VP9: Allow for bilinear subpel interp at speed 9 for high motion.Jerome Jiang
Fixed some settings in nonrd pick mode to allow for frame-level bilinear to be set. On Galaxy S8+ it has 4% speed up on high motion clips. Almost the same for low motion. 0.17% quality loss on RTC. Change-Id: I044a7de020183754ba08bb6c96c5a78ba5c7fea2
2018-05-31Merge "Improve the ML based partition pruning"Hui Su
2018-05-31vp9-svc: Fix to some frame metrics for real-time mode.Marco Paniconi
Add condition of LAST frame to the consec_zeromv and avg_frame_low_motion metrics. This is needed for SVC as the golden reference is a spatial reference and should not be included in the metric computation. Small/negligible change in metrics on RTC set. Change-Id: I6ea16298fae566bb288c34cf50d120b509146eee
2018-05-31VSX version of vpx_post_proc_down_and_across_mb_rowLuc Trudeau
Low bit depth version only. Passes the VpxPostProcDownAndAcrossMbRowTest VpxMbPostProcAcrossIpTest Speed Test (POWER8 Model 2.1) C time = 121.3 ms (±4.0 ms), VSX time = 9.4 ms (±0.3 ms) [12.9x] Change-Id: I28300779e197ea3855cf30867d17a2805388b447
2018-05-31Improve the ML based partition pruningHui Su
Add a neural net model that uses the same features as the existing linear model. Make the pruning decision based on both the linear and the neural net model. It provides more accurate predictions, and may improve compression and/or encoding speed. This only affects speed 0. Coding gain: 0.37% on midres 0.34% on hdres 0.50% on jvet8b720p Encoding speed impact(average over locally tested 20 clips from midres and hdres): QP=20: down by 2.5%. QP=30: down by 3.9%. QP=40: donw by 4.5%. QP=50: up by 5.2%. Change-Id: I402ec799745ad3b74abf0789fa5e124fe64e704d
2018-05-31Merge "vp9-svc: Fix to compute some metrics on top spatiail layer."Marco Paniconi
2018-05-31Merge "libs.mk: expose libvpx.{ver,syms} in all configs"James Zern
2018-05-30vp9-svc: Fix to compute some metrics on top spatiail layer.Marco Paniconi
The avg_frame_low_motion and consec_zeromv are frame-level metrics that are updated on every frame. For SVC these should be updated on top spatial layer (full resolution). Small/negligible change in metrics. Change-Id: Ibe14f05be3b82daa9dd60378097ff11a27f1b95e
2018-05-30vp9: Refactor code for q adjustment in CBR mode.Marco Paniconi
Move the adjustment code to separate function. Change-Id: I876b246a5c26095f262bb9a19f03d1f17077225d
2018-05-30Merge "Revert 3 slide show coding changes"James Zern
2018-05-30Revert 3 slide show coding changesJames Zern
This is a combination of the following 3 reverts. The changes cause issues on certain hardware devices. We'll pull them for now to allow for further investigation. Revert "Experiment regarding playback problems on Bravia TVs." This reverts commit 624f8105f5ae7e0bc82bdc7e10a4253295134a8b. Revert "Improved slide show coding" This reverts commit f4091bc30eef0fcacb5d5bd74ab7cfbc3c8aab5f. Revert "Improved coding on slide show content." This reverts commit 2fa333c2ae1b6fcc1864de12a7ad344a16e2ac0a. BUG=b/77492144 Change-Id: Ifba937792d644a9286307262f050216408e8ecf4
2018-05-30tiny_ssim: fix for odd image sizes.Jim Bankoski
Change-Id: I7dd1e37c5de3efccc07fcdc877653d4873a88266
2018-05-30Merge "vp9-svc: Add frame dropper control to sample encoder."Marco Paniconi
2018-05-29vp9-svc: Add frame dropper control to sample encoder.Marco Paniconi
Disabled as default as enc_cfg.rc_dropframe_thresh is set to 0 as default. Change-Id: Ia888aa16b1a86a716ec33ea041e8b16b19bf93be
2018-05-30Merge "vp9: Adjust cyclic refresh and limit frame-level q."Marco Paniconi
2018-05-29libs.mk: expose libvpx.{ver,syms} in all configsJames Zern
this allows the targets to be used explicitly in builds configured with --enable-external-build Change-Id: Id7db309a39a73cfd8f15f74430b17b317c0a847f
2018-05-29vp9: Adjust cyclic refresh and limit frame-level q.Marco Paniconi
For CBR mode with aq-mode=3: reduce delta-q for second segment and limit how much the frame-level q can decreae from one frame to the next. Reduces bitrate spikes in slide/sreen content. Change-Id: Id9ac4b7270f07e09690380755cfbef4aec5c26dc
2018-05-29VSX version of vpx_mbpost_proc_ipLuc Trudeau
Low bit depth version only. Passes the VpxMbPostProcAcrossIpTest. VpxMbPostProcAcrossIpTest Speed Test (POWER8 Model 2.1) C time = 188.5ms (±0.2ms), VSX time = 65.2ms (±0.1ms) [2.9x] Change-Id: I1cf72365d94a9d7f1e9323925a87a30e3bd5cfe2
2018-05-29VSX version of vpx_mbpost_proc_downLuc Trudeau
Low bit depth version only. Passes the VpxMbPostProcDownTest. VpxMbPostProcDownTest Speed Test (POWER8 Model 2.1) Full calculations: C time = 195.4 ms, VSX time = 33.7 ms (5.8x) Change-Id: If1aca7c135de036a1ab7923c0d1e6733bfe27ef7
2018-05-29Bench Class For More Robust Speed TestsLuc Trudeau
To make speed testing more robust, the AbstractBench runs the desired code multiple times and report the median run time with mean absolute deviation around the median. To use the AbstractBench, simply add it as a parent to your test class, and implement the run() method (with the code you want to benchmark). Sample output for VP9QuantizeTest [ BENCH ] Bypass calculations 4x4 165.8 ms ( ±1.0 ms ) [ BENCH ] Full calculations 4x4 165.8 ms ( ±0.9 ms ) [ BENCH ] Bypass calculations 8x8 129.7 ms ( ±0.9 ms ) [ BENCH ] Full calculations 8x8 130.3 ms ( ±1.4 ms ) [ BENCH ] Bypass calculations 16x16 110.3 ms ( ±1.4 ms ) [ BENCH ] Full calculations 16x16 110.1 ms ( ±0.9 ms ) Change-Id: I1dd649754cb8c4c621eee2728198ea6a555f38b3
2018-05-28vp9-realtime: Move frame dropper to after scene detection.Marco Paniconi
Move frame dropper to after scene detection and noise estimation. Scene detection and noise estimation operate on source data and update metrics along sequence, so they should be moved before the frame dropper. Also we don't want to drop on scene change, as the scene detection and (possible) re-encode step will be missed. Change-Id: I3d9e16d785bd5ace6707db2abce77ddc110bfef4
2018-05-28vp9-svc: Fix to allowed value of max_consec_drop.Marco Paniconi
For the max_consec_drop parameter in svc frame drop: since passing value 0 in the control would completely disable the dropper, only allow for values >= 1 to be set. Change-Id: I6b74ec9cc08a638fa571d6246a021dab9c811d14
2018-05-25Merge "VP8: Fix use-after-free in postproc."Jerome Jiang
2018-05-25VP8: Fix use-after-free in postproc.Jerome Jiang
The pointer in vp8 postproc refers to show_frame_mi which is only updated on show frame. However, when there is a no-show frame which also changes the size (thus new frame buffers allocated), show_frame_mi is not updated with new frame buffer memory. Change the pointer in postproc to mi which is always updated. Bug: 842265 Change-Id: I33874f2112b39f74562cba528432b5f239e6a7bd
2018-05-25Merge "VP9: Fix issues with high bitdepth in real-time."Marco Paniconi
2018-05-24VP9: Fix issues with high bitdepth in real-time.Jerome Jiang
Disable denoiser, skin detection and aq-mode for high bitdepth for now. BUG=webm:1534 Change-Id: I361a4e20b2319041148af497bf7043bfd5c5f589
2018-05-24vp9-svc: Add max_consec_drop to SVC frame drop.Marco Paniconi
For any spatial, limits the amount of consecutive frame drop. Change-Id: I692d90363f329f571f2b59e12cc680ad2e76065d
2018-05-23vp9: Rate control adjustments for screen content.Marco Paniconi
For screen content mode: changes to reduce occurence of significant QP decrease (from one frame to next), which can cause large frames (overshoot/delay). -cap the buffer increase to optimal level for frame drop mode where full superframe can drop -reduce the max_adjustment_down due to buffer overflow -reduce qp threshold to trigger re-encode on large frame Change-Id: I3e30e4814192b5f728abff3f7359eb64f561b8f0
2018-05-23Merge "Experiment regarding playback problems on Bravia TVs."Paul Wilkins
2018-05-22vp9-svc: Add full superframe drop mode.Marco Paniconi
This will check for dropping full superframe if any spatial layer is overshooting. Change-Id: Ic656807028ebef5552301b6d10399fbe3a6c890c
2018-05-22Merge "vp9-svc: Small code cleanup in nonrd-pickmode."Marco Paniconi
2018-05-21vp9-svc: Small code cleanup in nonrd-pickmode.Marco Paniconi
Rename a flag to indicate it is for the inter_layer reference. Change-Id: Ib198d3df95fb912259efde854613592c724b7c49
2018-05-21remove unused vpx_ports/config.hJames Zern
references were earlier removed in: 1a7d25a48 Replace vpx_ports/config.h with vpx_config.h Change-Id: I1824cd71e970f5c7550c3978e0c63ce36a9644e4
2018-05-21Add Solaris to supported platformsNiveditha Rau
Change-Id: Ib49e1d79ba4c1c5d5147ab437f744a31429a059c
2018-05-21Merge "configure,ios: add missing c++11 checks"Johann Koenig
2018-05-21Merge "vp9-svc: Fix on disabling inter_layer prediction."Marco Paniconi
2018-05-19vp9-svc: Fix on disabling inter_layer prediction.Marco Paniconi
In vp9_svc_constrain_inter_layer_pred() we disable the inter_layer prediction if anything but only the previous spatial layer (from same supeframe) is used for inter_layer prediction. This check and disabling was only allowed when the control VP9E_SET_SVC_INTER_LAYER_PRED is set to INTER_LAYER_PRED_ON_CONSTRAINED. But the control VP9E_SET_SVC_INTER_LAYER_PRED is needed for setting: INTER_LAYER_PRED_ON/INTER_LAYER_PRED_OFF/INTER_LAYER_PRED_OFF_NONKEY. So there is a conflict with setting INTER_LAYER_PRED_ON_CONSTRAINED. Fix for now is to always allow for this disabling check (disable inter_layer reference if its not previous spatial layer) as long as inter_layer prediction is used (i.e., not set to _OFF). A separate fix if needed may be to invoke another control for setting INTER_LAYER_PRED_ON_CONSTRAINED. This was causing an issue with enabling spatial layers on the fly (say spatial layer 2), where since INTER_LAYER_PRED_ON_CONSTRAINED was not set (default), the inter_layer prediction was then using a reference from 2 spatial layers below (spatial layer 0). Change-Id: Ic6434000665f63aab27c509b5eb7b8fc965827bc
2018-05-19vp9-svc: Fix issue with reseting lst_fb_idx.Marco Paniconi
When encoding a given spatial layer and the same spatial layer on previous superframe was dropped (or disabled due to 0 bitrate), the lst_fb_idx for current layer is set to the buffer index that was last updated on TL0 frame (for the same spatial layer). This condition was to maintain proper temporal prediction pattern under frame drops, and it should only apply to INTER frames. But the condition was causing an assert to be triggered on spatial layers whose base are key frames. Fix is to condition this reset of lst_fb_idx on the "is_key_frame" flag. Also initialize the fb_idx_upd_tl0 to -1 and only use it for a given spatial layer if its been set. These issues can happen when superframe drop happens just before a key frame, or when stream starts with lower layers and dynamically enabled higher spatial layers. Added datarate unittest the inserts key frame after superframe drop, and verified that this fix is needed for test to pass. Also modified the existing DisableEnable spatial layer test to trigger the issue of using fb_idx_upd_tl0 when it hasn't been set for a spatial layer. Change-Id: I059d1135736aca17e1326b9b4a2b16371eb4634e
2018-05-19configure,ios: add missing c++11 checksJames Zern
+ bump ios minimum to 7.0; 6.0 does not have full c++11 support Change-Id: If838b036e7327fda514cd2e8156eeda122cf6c73