summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-06-07Merge changes I999ef597,Ic6dc9f53Johann Koenig
* changes: configure: Add -mstackrealign flags to CFLAGS on OS/2 vpx: Add OS/2-specific threading codes
2016-06-07vp9: Small ajustment to settings gf_interval, 1 pass vbr.Marco
Add a max condition and lower the min value. No change in behavior (metrics for yt live set) for the default min/max_gf_interval=4/16 settings. Small positive change when min/max_gf_interval=7/16 (for 60fps clips on ytlive set). Change-Id: I1c1d72425c86c69419ea43fb9730130e81062f91
2016-06-06Merge "Move range checks into WRAPLOW"Debargha Mukherjee
2016-06-04Merge changes If31d36c8,I10b947e7James Zern
* changes: vpx_dsp,add_noise: remove mmx implementation vpx_dsp: remove mmx variance implementations
2016-06-03Merge "Fix Visual Studio build failure in filter_selectively_vert_row2() calls"James Zern
2016-06-03Move range checks into WRAPLOWDebargha Mukherjee
Provides more comprehensive coverage for --enable-coefficient-checking. The intent is to make the --enable-coefficient-checking option consistent with the VP9 spec. Change-Id: I12d0120756d17572ca2b2d7e6a2ab9d8071d8d58
2016-06-03Merge "Slightly more damped VBR adjustment."Paul Wilkins
2016-06-03Merge "Change to get_twopass_worst_quality()"Paul Wilkins
2016-06-03Merge "Removed unused data structure."Paul Wilkins
2016-06-03Merge "Adjustment to VBR rate correction."Paul Wilkins
2016-06-03Merge "Adjustment calculation of active worst quality."Paul Wilkins
2016-06-03Merge "Remove gf_zeromotion_pct."Paul Wilkins
2016-06-03Fix Visual Studio build failure in filter_selectively_vert_row2() callsLinfeng Zhang
Error messages: ..\vp9\common\vp9_loopfilter.c(1312): warning C4244: 'function' : conversion from 'uint64_t' to 'unsigned int', possible loss of data [.build-x86_64-win64-vs10\vpx.vcxproj] ..\vp9\common\vp9_loopfilter.c(1313): warning C4244: 'function' : conversion from 'uint64_t' to 'unsigned int', possible loss of data [.build-x86_64-win64-vs10\vpx.vcxproj] ..\vp9\common\vp9_loopfilter.c(1312): error C2220: warning treated as error - no 'object' file generated [.build-x86_64-win64-vs10\vpx.vcxproj] Change-Id: Ia69260611997cd2ba41c7184a85ecead740a7c07
2016-06-03Merge "Slow pshufb removal in 3 intra prediction functions."Linfeng Zhang
2016-06-03Merge "vp9: Fix valgrind failure for short circuit on low temporal vaiance ↵Jacky Chen
block."
2016-06-03Slightly more damped VBR adjustment.paulwilkins
Increase in the damping used in adjusting the active Q range. This does hurt rate accuracy a little in a few extreme cases especially if the clip is very short*, but helps metrics. * Note that the adjustment is applied at the GF/ARF group level based on what happened in the last group. Hence for very short clips where the length of a single group may be a significant % of the clip length there is still scope for some drift that cannot be accommodated. In practice most data points in our test sets are now much closer to target than was previously the case with default settings and in some cases are better even than they were with the command line undershoot and overshoot parameter was set very low (e.g. 2%). For example in bridge_close at high rates the old mechanism was unable to adapt enough to prevent extreme overshoot. Change-Id: I634f8f0e015b5ee64a9f0ccaa2bcfdbc1d360489
2016-06-03Change to get_twopass_worst_quality()paulwilkins
Change to the calculation of the error divisor used in get_twopass_worst_quality(). This follows on from other changes to the rate control that impact the output of this function. Change-Id: I414fa9aa1e6a68a64dccea17c3712f44b8a0c10c
2016-06-03Removed unused data structure.paulwilkins
Removed unused element from TWOPASS data structure. Change-Id: I9b662fd8eea727a7978055bc14f7c7328f048a5e
2016-06-03Adjustment to VBR rate correction.paulwilkins
Changes to the function the redistributes bits from overshoot or undershoot throughout the rest of the clip to respond more quickly. Change-Id: I90f10900cdd82cf2ce1d8da4b6f91eb5934310da
2016-06-03Adjustment calculation of active worst quality.paulwilkins
Added a factor based on the bit spend in the last arf group vs the target to adjust the choice of the active worst quality in subsequent groups. Helps clips where previously there was a big overshoot or undershoot to adapt and get closer to the target rate. Change-Id: I67034b801679b99024409489a2273ea6fe23b8e6
2016-06-03Remove gf_zeromotion_pct.paulwilkins
The use of this value is preventing rate adjustment on clips or sections that have very little motion but high noise and this can give rise to some sections with massive overshoot. Change-Id: I9a65c7c1148dc5d3a7d8b23e50fc1733f3661621
2016-06-02vpx_dsp,add_noise: remove mmx implementationJames Zern
a sse2 version exists, this is a reasonable modern baseline. Change-Id: If31d36c8412d25b53f41b4a93cf02f46802c0c33
2016-06-02vpx_dsp: remove mmx variance implementationsJames Zern
there are sse2 equivalents for all remaining variance implementations Change-Id: I10b947e73fc0067688181f819b59e47966bec3d2
2016-06-03Merge "ivfdec: tolerate invalid framerates"James Zern
2016-06-02vp9: Fix valgrind failure for short circuit on low temporal vaiance block.JackyChen
Add check for actual split before using the variance of the split. Change-Id: If0f93248be0b16d17738675d16c90516054dad2b
2016-06-02Slow pshufb removal in 3 intra prediction functions.Linfeng Zhang
Replaced vpx_d45_predictor_4x4_ssse3(), vpx_d45_predictor_8x8_ssse3() and vpx_d207_predictor_4x4_ssse3() with created vpx_d45_predictor_4x4_sse2(), vpx_d45_predictor_8x8_sse2() and vpx_d207_predictor_4x4_sse2() respectively. It's mostly neutral or slightly worse than ssse3 in good cases and better than ssse3 in the bad cases (but still worse than using the mmx regs). Change-Id: Ib0237ceb71d2c57b8a93fd3170330cfed9d56bdd
2016-06-02Disable short circuit feature for low temporal variance.JackyChen
The featrue fails in libvpx_unit_tests-valgrind. Will re-enable it after fixing the issue. Change-Id: I8ba132f04e98f4615b31fbff2097eda83c5e42bc
2016-06-02Merge "Update filter_selectively_vert_row2()"Linfeng Zhang
2016-06-02Merge "firstpass.c: fix an UBSAN/IOC error"Yaowu Xu
2016-06-02firstpass.c: fix an UBSAN/IOC errorYaowu Xu
Change-Id: I579286e6741b689ae4281a35beb7b8f95c3ffce5
2016-06-01vp9: Skip some modes when variance is low for big blocks, for 1 pass real-time.jackychen
Skip intra-mode and some inter-modes (newmv, nearmv, nearestmv) for golden frame if the variance got from choose_partitioning is very low. Only for 1 pass real-time CBR mode and bsize >= 32x32, it has ~2.5% speed up with less than 0.1% PSNR drop for rtc test set. Don't see visual regression. Change-Id: I70efbc95a1007231ae36f02c5b2fbf6cd35077ad
2016-06-01Update filter_selectively_vert_row2()Linfeng Zhang
Reduce operations and jumps. perf shows CPU time reduced from 1.9% to 1.6% when decoding fdJc1_IBKJA.248.webm on Xeon E5. Will apply the changes to vp10 after code review. Change-Id: I9351509922855d8896ddef1ed093b3ca12619a61
2016-06-01Merge "vp9: Skip computation of best_sad for newmv, unless needed."Marco Paniconi
2016-06-01Fix UBSAN/IOC errorsYaowu Xu
1. test/dct16x16_test.cc 2. test/dct32x32_test.cc 3. test/fdct8x8_test.cc BUG=webm:1225 Change-Id: I9c9315fbd65ddb3b44f688e01ba265fd22192198
2016-06-01Fix VP8 encoder UBSAN/IOC errorsYaowu Xu
1. vp8/decoder/dboolhuff.c 2. vp8/decoder/dboolhuff.h 3. vp8/encoder/bitstream.c 4. vp8/encoder/boolhuff.h 5. vp8/encoder/rdopt.c BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1218 Change-Id: I5d315d63fd7aeaee6f3bd79178e593f3db38a6b1
2016-05-31ivfdec: tolerate invalid frameratesJames Zern
default invalid framerates to 30, quiets warnings in corrupt / fuzzed files Change-Id: Ib10d2b67df83cb6f9ed1cd6ef8e0e637aa7099ff
2016-05-31variance_avx2.c: UBSAN/IOC fixYaowu Xu
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1222 Change-Id: Ifb3bedf9b4e1b007b21aebaa4beb9ba50424efef
2016-05-31vp9: Skip computation of best_sad for newmv, unless needed.Marco
For non-rd pickmode: best_pred_sad, computed for NEWMV-last, is only used for skipping golden non-zero modes. Add condition to avoid this computation if not used (i.e, if golden nonzero modes are not used). And remove code for computing best_pred_sad for NEWMV-golden, since that sad is not used. No change in behavior; small speed gain (~1%) for svc encodes. Change-Id: Ic2cbdef6c4e9a233a57c0db0eeac8ad5fcead366
2016-05-27Merge "vpx_ports/mem_ops.h: cast the lhs of bitwise shifts of 24."Tom Finegan
2016-05-27Merge "acm_random,Rand9Signed: correct cast"James Zern
2016-05-27Merge "Upgrade fwht4x4_mmx() to fwht4x4_sse2() for vp9 and vp10."Linfeng Zhang
2016-05-27acm_random,Rand9Signed: correct castJames Zern
convert the random value to int16 before subtracting 256 from it; quiets a ubsan (sanitize=integer) warning BUG=webm:1225 Change-Id: Ibc2c5a21f30e112bd6c180f7d6a033327c38d0df
2016-05-27Upgrade fwht4x4_mmx() to fwht4x4_sse2() for vp9 and vp10.Linfeng Zhang
Function level timing test shows about 27% time saving on a Xeon E5-2680 v2 desktop. Rename vp9_dct_sse2.c to vp9_dct_intrin_sse2.c for vp9 and rename dct_sse2.c to dct_intrin_sse2.c for vp10 to avoid duplicate basenames. Actually vp9_fwht4x4_mmx/sse2() and vp10_fwht4x4_mmx/sse2() are identical. TODO: They should be unified later if there is no intention to keep a duplicate. Change-Id: I3e537b7bbd9ba417c606cd7c68c4dbbfa583f77d
2016-05-27vpx_ports/mem_ops.h: cast the lhs of bitwise shifts of 24.Tom Finegan
C does not allow for shifting into the sign bit of a signed integer, and the two instances here become signed ints via promotion. Explcitly cast them to unsigned MEM_VALUE_T to avoid the problem. BUG=https://bugs.chromium.org/p/chromium/issues/detail?id=614648 Change-Id: I51165361a8c6cbb5c378cf7e4e0f4b80b3ad9a6e
2016-05-27Merge "Upgrade vpx_lpf_{vertical,horizontal}_4 mmx to sse2"Linfeng Zhang
2016-05-26Upgrade vpx_lpf_{vertical,horizontal}_4 mmx to sse2Linfeng Zhang
Followed the code style of other lpf fuctions. These 2 functions put 2 rows of data in a single xmm register, so they have similar but not identical filter operations, and cannot share the same macros. Change-Id: I3bab55a5d1a1232926ac8fd1f03251acc38302bc
2016-05-26Merge "Convert to unsigned int before left shift"Yaowu Xu
2016-05-26Convert to unsigned int before left shiftYaowu Xu
This is to fix overflow when 128 is left shifted by 24. Change-Id: Ibb5f6813536d985afa003a9848c0c3dd358955a7
2016-05-26Merge "Code clean of sub_pixel_variance4xh -- 2"Scott LaVarnway
2016-05-25vp9: Add datarate test for 1 pass VBR mode.Marco
Existing tests are only for CBR mode. Change-Id: Ie3b2cd46236457748e2650901d1a347a730f38af