summaryrefslogtreecommitdiff
path: root/vpx_dsp
AgeCommit message (Collapse)Author
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
2016-05-06Unlike non-hbd variance, opt2 is never usedJohann
Change-Id: I1d342725df332c4efc6006d9e3dcb7372c41f448
2016-05-06Merge changes from topic 'missing-proto'James Zern
* changes: vp9_frame_scale_ssse3.c: make 2 functions static vp9_pickmode.c: make function static vp9_noise_estimate.c: make function static vp9_aq_360.c: add missing include vp9_idct_intrin_sse2: add missing vp9_rtcd.h include vpx_dsp/*.[hc]: add missing vpx_dsp_rtcd.h include
2016-05-04vpx_dsp/*.[hc]: add missing vpx_dsp_rtcd.h includeJames Zern
Change-Id: I103be7eee36492f8619144ce8325bc916d4975c7
2016-05-04vpx_dsp_common.h: remove circular includeJames Zern
Change-Id: I05b3028a38bbc062c388eeb95e99a3fee583ae6b
2016-05-04vpx_dsp_common.h: fix include guardJames Zern
Change-Id: I1ad41c096ec86870f9aecab6fdbc3af03e972afc
2016-05-04Merge "libvpx: add a unit test for plane_add_noise."James Bankoski
2016-05-03libvpx: add a unit test for plane_add_noise.Jim Bankoski
In so doing this fixes a couple of bugs: vpx_plane_add_noise.c needed to subtract a clamp instead of add. And the assembly (mmx sse) had assumptions that parameters were continuous in memory which was not true. Change-Id: I76f2c43cf54bfc838eb2edf8a443eaaa7565d7b5
2016-05-03Merge "Move vpx_add_plane from codec to vpx_dsp and dedup."James Bankoski
2016-05-02Move vpx_add_plane from codec to vpx_dsp and dedup.Jim Bankoski
Change-Id: I12218d8331c0558c0587a66321e3ca46da7e5cc7
2016-04-28Merge "bitreader: remove an unsigned overflow."Alex Converse
2016-04-27Tweak casts on vpx_sub_pixel_variance to avoid implicit overflow.Alex Converse
Change-Id: I481eb271b082fa3497b0283f37d9b4d1f6de270c
2016-04-27bitreader: remove an unsigned overflow.Alex Converse
bits_left is in the range [0, 64 (= BD_VALUE_SIZE)] , so the narrowing conversion should be safe. Change-Id: I943fcd359eaad76249ee1e1fb03a2ac16945d2fd
2016-04-27Be explicit about overflow in vpx_variance16x16_sse2.Alex Converse
The product always fits in uint32_t, but the operands don't. An optimizing compiler should generate the wraparound code. (Verified with clang). Change-Id: I25eb64df99152992bc898b8ccbb01d55c8d16e3c
2016-04-27Remove casts on < 16x16 variance.Alex Converse
These blocks will never overflow since max sum is +/-255*w*h. Change-Id: Ia2c630339fd9cfb411b56b6040ff402095f12a2e
2016-04-21vpx_minmax_8x8_neon and testJohann
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1156 Change-Id: Ief0ad8d6255b0ef0f233cda153799e3c72d3dbc6
2016-04-21hadamard 8x8 testJohann
The order of the output structure is not currently important. BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1021 Change-Id: Ibc0006d569675db6c5060c4529f5d9e73f2e96a6