summaryrefslogtreecommitdiff
path: root/vpx_dsp
AgeCommit message (Collapse)Author
2016-06-29Prevent negative varianceYaowu Xu
Due to rounding, hbd variance may become negative. This commit put in check and clamp of negative values to 0. Change-Id: I610d9c8aa2d4eebe7bc5f2c5624a9e3cadad4c94
2016-06-28Merge "*.asm: normalize label format"James Zern
2016-06-28psnr.c: use int64_t for sum of differencesYaowu Xu
Since the values can be negative. Change-Id: Idda69e9fb47bb34696aeb20170341a0191c5d85e
2016-06-27*.asm: normalize label formatJames Zern
add a trailing ':', though it's optional with the tools we support, it's more common to use it to mark a label. this also quiets the orphan-labels warning with nasm/yasm. BUG=b/29583530 Change-Id: I46e95255e12026dd542d9838e2dd3fbddf7b56e2
2016-06-27Merge "Port metric computation changes from nextgenv2"Yaowu Xu
2016-06-25Revert "Update vpx subpixel 1d filter ssse3 asm"James Zern
This reverts commit 1517fb74fd40eaab67246e8fb81d5c321bb33b06. Fixes a segfault in windows x64 builds. Change-Id: I6a6959cd7e64a28376849a9f2b11fc852a7c1fbe
2016-06-24Port metric computation changes from nextgenv2Yaowu Xu
Change-Id: I4aceffcdf7af59ffeb51984f0345c3a4c7e76a9f
2016-06-23Merge "Update vpx subpixel 1d filter ssse3 asm"Linfeng Zhang
2016-06-22vpx_lpf_horizontal_4_sse2: Remove dead load.Alex Converse
Change-Id: I51026c52baa1f0881fcd5b68e1fdf08a2dc0916e
2016-06-22Merge "remove vp10"James Zern
2016-06-22Update vpx subpixel 1d filter ssse3 asmLinfeng Zhang
Speed test shows the new vertical filters have degradation on Celeron Chromebook. Added "X86_SUBPIX_VFILTER_PREFER_SLOW_CELERON" to control the vertical filters activated code. Now just simply active the code without degradation on Celeron. Later there should be 2 set of vertical filters ssse3 functions, and let jump table to choose based on CPU type. Change-Id: I37e3e9c5694737d9134a6bce6698d3e43f8fc962
2016-06-22Prevent negative varianceYaowu Xu
Due to rounding used computation, HDB variance computation may produce slightly negative values. This commit adds clamping to make sure output variance values for 10 and 12 to be non-negative. Change-Id: Id679aa55a4c201958c4c7d28cd8733b9246a71c8
2016-06-20Make type conversion explicitYaowu Xu
This fixes MSVC warnings. Change-Id: I675d8486230b2b74d7973d95720a4995c4750282
2016-06-17remove vp10James Zern
development has moved to the nextgenv2 branch and a snapshot from here was used to seed aomedia BUG=b/29457125 Change-Id: Iedaca11ec7870fb3a4e50b2c9ea0c2b056a0d3c0
2016-06-16vpx_dsp/quantize.c: fix ubsan warningsYaowu Xu
BUG=webm:1219 Change-Id: I0c80271c6b78adf40aa7a4cac9e6b431d56958cb
2016-06-16vpx_dsp/variance.c: change to use correct typeYaowu Xu
This commit change to use int64_t to represent the sum of pixel differences, which can be negative. This fixes a number of ubsan warnings. BUG=webm:1219 Change-Id: I885f245ae895ab92ca5f3b9848d37024b07aac98
2016-06-14neon hadamard 16x16Johann
Runs about twice as fast as C BUG=webm:1027 Change-Id: I6760d99f4e22259439ca35d746194b12a81bfa71
2016-06-09Add a couple of missing WRAPLOW checksDebargha Mukherjee
To make coefficient checking consistent with the VP9 spec sections 8.7.1.6 and 8.7.1.1. Change-Id: I92e38e89a41d1e482317bb478c48ffa608d2d6ee
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-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 "Slow pshufb removal in 3 intra prediction functions."Linfeng Zhang
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-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-05-31variance_avx2.c: UBSAN/IOC fixYaowu Xu
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1222 Change-Id: Ifb3bedf9b4e1b007b21aebaa4beb9ba50424efef
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 "Code clean of sub_pixel_variance4xh -- 2"Scott LaVarnway
2016-05-24Code clean of sub_pixel_variance4xh -- 2Scott LaVarnway
Replace MMX with SSE2. Change-Id: Id8482d2589131f9427e7f36bc64413f058caf31f
2016-05-19Revert "Code clean of sub_pixel_variance4xh"James Zern
This reverts commit 2468163e0770108f5216b65445ce05a8241bca21. causes valgrind errors for overread of buffer in SubpelVarianceTest Change-Id: I448e52c76f815ac199305b71f7d169f2bc167679
2016-05-18Merge "Clarify integer value ranges"Yaowu Xu
2016-05-18Merge "Code clean of sub_pixel_variance4xh"James Zern
2016-05-18Merge "neon hadamard 8x8"Johann Koenig
2016-05-18Clarify integer value rangesYaowu Xu
This commit clarifies integer value range for vairables used in several variance functions, also change to use proper type conversion to reflect the value ranges. Change-Id: Ic3234b83a912ce1ad12d1b254f3378763e15cc5c
2016-05-18Code clean of sub_pixel_variance4xhScott LaVarnway
Replace MMX with SSE2. Change-Id: Ia8fcba755952804e347d7d7736f57d1f90c988a0
2016-05-16neon hadamard 8x8Johann
Runs about 30% faster than the C BUG=webm:1021 Change-Id: I6809d6d84c3077ab619c53298296950e976bdaba
2016-05-13Merge "Change to use correct check for halfpel"Yaowu Xu
2016-05-11Merge "remove mmx variance functions"Linfeng Zhang
2016-05-11Change to use correct check for halfpelYaowu Xu
In motion estimation stage for subpel motion, subpel variance is computed use bilinear interpolation. The motion vector precision used is at 1/8 pel and three bits are used to represent the x and y subpel offsets. Based on this, the half pel check should be against 4, not 8. Change-Id: I1f56fa1fa3f2f5e19a20d27983efe628557f170e
2016-05-11remove mmx variance functionsLinfeng Zhang
there are sse2 equivalents which is a reasonable modern baseline Removed mmx variance functions: vpx_get_mb_ss_mmx() vpx_get8x8var_mmx() vpx_get4x4var_mmx() vpx_variance4x4_mmx() vpx_variance8x8_mmx() vpx_mse16x16_mmx() vpx_variance16x16_mmx() vpx_variance16x8_mmx() vpx_variance8x16_mmx() Change-Id: Iffaf85344c6676a3dd337c0645a2dd5deb2f86a1
2016-05-11remove mmx sad functionsLinfeng Zhang
there are sse2 equivalents which is a reasonable modern baseline Change-Id: Ibbe536a5ad1c2cccef6bdcc75c13b3dde35a56ba
2016-05-10vpx_dsp: Rename postproc.c add_noise.Jim Bankoski
Change-Id: I4906d1b79a2951e659995202b9fa97e2ea5cfba0
2016-05-09Merge "VPX: refactor vpx_idct16x16_1_add_sse2()"Scott LaVarnway
2016-05-09Merge "libvpx: vpx_add_plane_noise make c match assembly"James Bankoski
2016-05-09Merge changes Id13b97f4,I1d342725Johann Koenig
* changes: The subfunctions are only defined for sse2 Unlike non-hbd variance, opt2 is never used
2016-05-09VPX: refactor vpx_idct16x16_1_add_sse2()Scott LaVarnway
Change-Id: I431ea0d9abe764d110a1ba32a8cb15e2fdac8805
2016-05-07libvpx: vpx_add_plane_noise make c match assemblyJim Bankoski
This change makes the c match the assembly and removes the todo's associated with getting this to work. Change-Id: Ie32e9ebb584a9d60399662d8bcb71b74fbd19d1e
2016-05-06Use canonical avg_pred functionsJohann
Change-Id: Ibe0cc388226622561d2b4a00e5bdc1016a3c4a94
2016-05-06The subfunctions are only defined for sse2Johann
See highbd_subpel_variance_impl_sse2.asm Change-Id: Id13b97f4f6d189ed71cdc6d52b3c4ea63dc1da05