summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2016-11-07Rename vpx_highbd_idct8x8_10{*}() to vpx_highbd_idct8x8_12{*}()Linfeng Zhang
Also update its trigger threshold from 10 to 12. Change-Id: Ib8dddd87a5a22a12ca66e7084d342fbb027b0a2f
2016-11-05Update vp9_fdct8x8_quant_ssse3 for highbitdepthJohann
Borrow transition functions from fdct.h nee vpx_quantize_b_sse2 BUG=webm:1304 Change-Id: I9c88c3eec3ff8bb461411d98c26c3c236ea28ef1
2016-11-03Merge "vp9: Non-rd pickmode: fix logic in reference masking."Marco Paniconi
2016-11-03vp9-svc: Add decoder control to decode up to x spatial layers.Marco
Change-Id: I85536473b8722424785c84c5b5520960b4e5744a
2016-11-03vp9: Non-rd pickmode: fix logic in reference masking.Marco
Add condition that usable_ref_frame > LAST. This is to avoid potentially skipping all last-nonzero mv modes, if golden is used as a reference but skipped completely for the current block. This has no effect currenty, as we always consider testing golden mode for each block. Change-Id: I3182cf44664081935a90ed43aa7b32e710e60e22
2016-11-03Merge "Speed-up recode loop for extreme bitrate diffs"Debargha Mukherjee
2016-11-02Merge "Fixed bug in formatting of debug stats."Paul Wilkins
2016-11-02Fixed bug in formatting of debug stats.paulwilkins
Fixed formatting bug introduced by the fix to BUG=webm:1322 ( Iedc4477aef1746aa0a4f84d88a1156296fd3ba87) Change-Id: I715ee446c0e8584967ab87ba4e355759dd394187
2016-11-01vp9,tile_worker_hook: correctly set jmp targetJames Zern
vp9_init_macroblockd() resets the error_info to cm's global copy; this needs to be set to the thread-level target to avoid jumping to the incorrect stack, resulting in hang or crash. broken since: 1f4a6c8 vp9/tile_worker_hook: add multiple tile decoding includes v1.5.0, v1.6.0 BUG=629481 Change-Id: Icbf1696b25ba8c479e845fbf227b3c3ca73542f5
2016-11-01Merge "Change to KF boost calculation."Paul Wilkins
2016-10-28Change to KF boost calculation.Paul Wilkins
This change is a step in a larger change to the way boost and interval are determined for ARF and Key frames. This patch contains some pluming for the general case but focuses on the key frame boost calculation. This now relies more heavily on the rate at which the error score increases between the primary and secondary reference frame. This seems to be less fragile when dealing with different frame sizes. For example larger image formats tend in the first pass to see a higher % of intra coded blocks and the use of this number in calculating the frame decay factor was leading to much lower boost numbers for 4K, for example, than the same clip coded at 2K. This change does give overall gains but they are MUCH larger for the 4K Netflix set. For the 4K Netflix set the average gain is around 3% with some clips > 20% whereas for the same set at 2K the average gain is 0.5-1%. In general for small image formats the boost is most often reduced a little whereas 4K clips the boost is increased. There are some -ve cases such as Akiyo at 352x288 where the reduced boost hurts the metrics, especially for SSIM, even while the set as a whole improves. This is most notable at very low Q and may be the subject of a future patch. Some common code for KF and ARF was separated in this patch for the purposes of tuning but may later be re-merged if appropriate. Change-Id: Iaa15ac5a58d2be89181100d95cef6a8dc4b12d0d
2016-10-28Merge "Force recode if framesize exceeds max allowed size"Debargha Mukherjee
2016-10-27Speed-up recode loop for extreme bitrate diffsDebargha Mukherjee
Adjusts the q adjustement step depending on how far the projected and target rates differ. Change-Id: I498d03523ca233a270512ca3972c372daa4ca2a8
2016-10-27Force recode if framesize exceeds max allowed sizeDebargha Mukherjee
Fixes a case where recode is not triggered based on the value of maxq passed into the recode loop test function. BUG=b/32375284 Change-Id: I15ad985d0525c68e0443cfaf842440d2754b2266
2016-10-26Changes to KF boost calculation.Paul Wilkins
Remove double counting of decay. Limit maximum KF boost. Change-Id: I0fb2344d0f78b5e95bb899dfad12b0ca84034b2c
2016-10-26Removal of a couple of two pass adjustments.paulwilkins
Removed a couple of adjustments that no longer move the needle much but complicate the process of tuning. Change-Id: Ie320f5cf155e6aac14a4757ea9ada2cd59f27590
2016-10-25Change 2 motion search counts to be tile dataYunqing Wang
This patch modified the motion search counts used in: https://chromium-review.googlesource.com/#/c/305640/ These 2 counts were originally added as thread data, and used to make decisions in motion search. The tile encoding order can be inconsistent while using different number of threads, which can cause bitstream mismatch. Here moved them to tile data to solve the issue. BUG=webm:1322 Change-Id: Iedc4477aef1746aa0a4f84d88a1156296fd3ba87
2016-10-22Merge "vp9_bitstream: Encode tiles in parallel"Vignesh Venkatasubramanian
2016-10-21vp9_bitstream: Encode tiles in parallelVignesh Venkatasubramanian
Re-use the tile worker threads to pack the bitstream in parallel on a per-tile basis. Restricting this to real-time only for now (further testing is needed to ensure this does not make 2-pass worse in any case). BUG=webm:1309 Change-Id: I8a80da7c5089b837d0df79a5c49d5e3022dfc8ec
2016-10-21vp9: Nonrd variance partition: increase threshold for using 4x4 avg.Marco
In variance partition low resolutions may use varianace based on 4x4 average for better partitioning. Increase the threshold for doing this at speed = 8. Improves speed by ~5%, with little loss, < 1%, on RTC_derf set. Change-Id: Ib5ec420832ccff887a06cb5e1d2c73199b093941
2016-10-20vp9: Speed=8 real-time: Keep the bias_golden feature on.Marco
Small/no change in metrics on RTC set, speed increase by 2-3%. Change-Id: Iee997bd7433e8e508216e9267b1c31c5a9aa5121
2016-10-18Revert "vp9_bitstream: Encode tiles in parallel"James Zern
This reverts commit 9e8efa5b189a5abf78b1bcbc8076893728129d1e. this change causes ubsan warnings, failures in vpxenc_vp9_webm_rt_multithread_tiled BUG=webm:1309 Change-Id: I020c7be985c771bfff4b3de1afe51cc8edb980da
2016-10-18Merge "vp9: Non-rd variance partition: add condition for 64x64 split."Marco Paniconi
2016-10-17vp9: Non-rd variance partition: add condition for 64x64 split.Marco
Add stronger condition for splitting 64x64, for low noise content. This reduces dragging artifact near moving head. Little/no change in metrics on RTC set. Change-Id: I39b38cfd20f2ece53ff49c2aaf76ba9f82761be1
2016-10-17vp9_bitstream: Encode tiles in parallelVignesh Venkatasubramanian
Re-use the tile worker threads to pack the bitstream in parallel on a per-tile basis. Restricting this to real-time only for now (further testing is needed to ensure this does not make 2-pass worse in any case). BUG=webm:1309 Change-Id: Ia2c982da56697756e12f02643f589189b3271d98
2016-10-12vp9_bitstream: Parameterize interp_filter_selectedVignesh Venkatasubramanian
Facilitates encoding tiles in parallel. BUG=webm:1309 Change-Id: I37aa336d47babffc8352188dc767eebdb8a99474
2016-10-12Merge "vp9_bitstream: Parameterize max_mv_magnitude"Vignesh Venkatasubramanian
2016-10-12vp9_bitstream: Parameterize max_mv_magnitudeVignesh Venkatasubramanian
Facilitates encoding tiles in parallel. BUG=webm:1309 Change-Id: I614a5a492c30b6773c30e7294cd6a6f456e02ab4
2016-10-111 pass vbr: Allow for lookahead alt-ref in real-time mode.Marco
For 1 pass vbr real-time mode: Allow for the usage of alt-ref frame when non-zero lag-in-frames is used. Use non-filtered alt-ref, and select usage based on fast scene/content analysis/detection within the lag of frames. Positive gains on ytlive set: overall avgPSNR ~3-4%. Several clips are up between 5-14%, a few clips are neutral/small change. Current speed decrease is about ~5-10%. Use the flag USE_ALTREF_FOR_ONE_PASS to enable this feature (off by default for now). Change-Id: I802d2bf3d44f9cf01f6d15c76be9c90192314769
2016-10-11vp9: 1 pass vbr: some adjustments to gf interval.Marco
Put limit on gf interval based on lag, and allow for the adjustment on next gf group also on key frame. Small/neutral change on ytlive metrics. Change only affects 1 pass vbr real-time mode. Change-Id: I339c8f4398848698b6e10fe9482c52ca661b94a5
2016-10-07write_modes: add MACROBLOCKD as a parameterVignesh Venkatasubramanian
This will enable bit stream packing of each tile column in parallel. BUG=webm:1309 Change-Id: Ie349d8cc5825326218ffda893a50730b2e68ed34
2016-10-05Remove vpx_realloc()Alex Converse
It only handles the realloc constraint (preserving low elements) by serendipity, and we don't actually rely on that behavior anyway. Meanwhile the calls may do extra copying that gets immediately clobbered by the callers. Change-Id: I8dfa89e4a81084b084889c27bd272fdf85184e8d
2016-10-04Merge "Move highbd txfm input range check from 2d iht transform to 1d ↵Angie Chiang
idct/iadst"
2016-10-03Move highbd txfm input range check from 2d iht transform to 1d idct/iadstAngie Chiang
This change will make the highbd txfm input range check more comprehensive The 25-bit highbd input range is composed by 12 signal input bits + 7 bits for 2D forward transform amplification + 5 bits for 1D inverse transform amplification + 1 bit for contingency in rounding and quantizing BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1286 BUG=https://bugs.chromium.org/p/chromium/issues/detail?id=651625 Change-Id: I04c0796edd7653f8d463fba5dc418132986131e7
2016-10-03Merge "Fix warning when building with GCC 5."James Zern
2016-10-03Merge "cosmetics,*_neon.c: rm redundant return from void fns"James Zern
2016-10-01Fix warning when building with GCC 5.Geza Lore
These caused the following warning with GCC 5: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses] assert(!is_compound == (cm->reference_mode == SINGLE_REFERENCE)); Change-Id: If296aabb2311ceb7d903b395c1549ef81c2cbf9b (cherry picked from commit c6cf7a6111f6539f01a34865aaedd179a5ae062c)
2016-09-30Merge "vp9: On change_config() only call update_frame_size if needed."Marco Paniconi
2016-09-30Merge "vp9 real-time mode: Change loopfilter speed feature at speed 8."Marco Paniconi
2016-09-30cosmetics,*_neon.c: rm redundant return from void fnsJames Zern
+ a couple of 'break's after a return Change-Id: Ia21f12ebcef98244feb923c17b689fc8115da015
2016-09-30Merge changes from topic '8bit-hbd-idct'James Zern
* changes: *idct*_neon.c: add missing rtcd include idct,msa/neon: exclude idct files from hbd build *rtcd_defs.pl: remove empty specialize calls
2016-09-30Merge "Unify loopfilter function names"Linfeng Zhang
2016-09-29*rtcd_defs.pl: remove empty specialize callsJames Zern
add_proto adds a 'c' specialization Change-Id: I0ed0c2240d45264b0e0056ce7c8f63f4a00780bc
2016-09-30Merge "Fix an issue in vp9_first_pass for non-mulitple of 16 resolutions"Yunqing Wang
2016-09-29Unify loopfilter function namesLinfeng Zhang
Rename vpx_lpf_horizontal_edge_8() to vpx_lpf_horizontal_16(). Rename vpx_lpf_horizontal_edge_16() to vpx_lpf_horizontal_16_dual(). Change-Id: I798ca8fbbd657d06d3db2bfb0fb3321168f49e52
2016-09-29Fix an issue in vp9_first_pass for non-mulitple of 16 resolutionsDeepa K G
This patch sets the 16x16 src_diff to zero and ensures correct calculation of this_error for block sizes smaller than 16x16. Change-Id: I7b7c02d267433c9f22c8ac9b8d5df2f499175172
2016-09-29vp9: On change_config() only call update_frame_size if needed.Marco
change_config() may be called often in real-time application, to update bitrate/framerate or qp-max/min. No need to do update_frame_size() unless frame size has changed. Change-Id: I23a51deade1e03adc91c468f9ffde3235298770c
2016-09-29vp9 real-time mode: Change loopfilter speed feature at speed 8.Marco
For real-time mode at speed 8: turn off MINIMAL_LF at speed 8, for non-screen content mode. Visually better, avgPSNR/SSIM on rtc set go up by ~4-5%. Speed decrease of about ~3%. Change-Id: I8eb69330f02e0ceece1507d43cfc8a049a1d8291
2016-09-28vp9_detokenize,decode_coefs: fix signed int overflowJames Zern
when decoding an invalid bitstream with --enable-vp9-highbitdepth BUG=webm:1297 Change-Id: I401d87033b4293f2ca595bc51678aad9951ecf15
2016-09-28Merge "vp9: fix compilation for g++ 6.2.x"James Zern