206 Commits

Author SHA1 Message Date
fbarchard@google.com
d9c9f37ac4 Conversions use malloc for row buffers.
BUG=296
TESTED=libyuv convert_test
R=tpsiaki@google.com

Review URL: https://webrtc-codereview.appspot.com/6399004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@928 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-12-27 02:00:30 +00:00
fbarchard@google.com
b2a51d042d Sobel use malloc for row buffers
BUG=296
TESTED=Sobel*
R=tpsiaki@google.com

Review URL: https://webrtc-codereview.appspot.com/6389004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@927 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-12-27 01:29:14 +00:00
fbarchard@google.com
aae7deb5cf yuv use scale slope calc
BUG=none
TEST=drmem
R=tpsiaki@google.com

Review URL: https://webrtc-codereview.appspot.com/5319004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@899 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-12-07 00:55:23 +00:00
fbarchard@google.com
ba0eab9366 Reduce blur radius based on width. And Makefile clean remove temp files.
BUG=none
TEST=Blur*
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/4019004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@858 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-11-18 19:18:15 +00:00
fbarchard@google.com
6368c10c9c Add __declspec(safebuffers) to functions with arrays on stack that have explicit checks to avoid a redundent compiler stack check.
BUG=none
TEST=unitests pass
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/3289004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@837 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-11-01 21:27:31 +00:00
fbarchard@google.com
11a0d48e45 pass parameter for yuv conversion
BUG=267
TEST=Luma
R=tpsiaki@google.com

Review URL: https://webrtc-codereview.appspot.com/3169005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@834 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-31 05:47:13 +00:00
fbarchard@google.com
6f7e514caa Full metal BCS
BUG=none
TEST=Luma* unittest
R=thorcarpenter@google.com

Review URL: https://webrtc-codereview.appspot.com/3029004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@828 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-28 17:10:49 +00:00
fbarchard@google.com
08b24a4232 Bayer GG specialized version for Sobel
BUG=none
TEST=Sobel
R=johannkoenig@google.com

Review URL: https://webrtc-codereview.appspot.com/2849004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@826 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-25 07:39:43 +00:00
fbarchard@google.com
092099507e Sobel using max to get abs for SSE2
BUG=none
TEST=none
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2769004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@824 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-23 00:51:52 +00:00
fbarchard@google.com
38157bdc71 Change Attenuate and Unattenuate to unaligned memory ops.
BUG=279
TEST=ARGBAttenuate_Unaligned
R=nfullagar@google.com, ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2709004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@821 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-21 21:44:23 +00:00
fbarchard@google.com
095f33d870 Coalesce rows by changing width/height and dropping into code instead of recursing. Improve coalesce by setting stride to 0 so it can be used even on odd width images. Reduce unittests to improve time to run emulators.
BUG=277
TEST=unittests all build and pass
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2589004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@819 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-21 19:29:10 +00:00
fbarchard@google.com
8be4b289c7 ARGBSobelToPlane which produces a planar output.
BUG=none
TEST=none
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2415005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@818 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-21 18:39:07 +00:00
fbarchard@google.com
adef267edf CopyYToAlpha to copy from a plane to alpha channel of ARGB
BUG=275
TESTED=untested
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2415004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@814 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-17 07:32:16 +00:00
fbarchard@google.com
3075de8285 Use simple masking for AVX2 version of CopyAlpha so it can be implemented using a more generic bit mask function in future, and use more broadly known and optimized opcodes that will always be fast. Same performance as vblend.
BUG=none
TEST=CopyAlpha*
R=johannkoenig@google.com

Review URL: https://webrtc-codereview.appspot.com/2393005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@813 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-15 00:32:29 +00:00
fbarchard@google.com
f6631bb814 CopyAlpha AVX2
BUG=none
TEST=Alpha*
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2392004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@812 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-14 19:37:21 +00:00
fbarchard@google.com
7f67961ec5 ARGBCopyAlpha for effects
BUG=none
TEST=none
R=johannkoenig@google.com

Review URL: https://webrtc-codereview.appspot.com/2385004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@810 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-12 22:27:37 +00:00
fbarchard@google.com
212a1a5000 ARGBShuffle_SSE2 for lower end CPUs
BUG=271
TESTED=out\release\libyuv_unittest --gtest_filter=**R*ToARGB*
R=johannkoenig@google.com, ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2361004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@807 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-05 04:17:50 +00:00
fbarchard@google.com
c99db063e2 Change ARGBColorMatrix to a 4x4.
BUG=none
TEST=planar_unitest updates
R=johannkoenig@google.com, ryanpetrie@google.com, thorcarpenter@google.com

Review URL: https://webrtc-codereview.appspot.com/2320008

git-svn-id: http://libyuv.googlecode.com/svn/trunk@805 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-01 01:27:30 +00:00
fbarchard@google.com
b99bcab7f7 ARGBShuffle_AVX2 for speed up end swapping for Chrome/Java.
BUG=271
TESTED=ARGBShuffle unittest
R=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2320005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@804 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-30 07:47:59 +00:00
fbarchard@google.com
2732591d46 Limit sobel maximum width to stride - kEdge
BUG=none
TEST=drmemory

Review URL: https://webrtc-codereview.appspot.com/2285004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@801 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-24 19:56:29 +00:00
fbarchard@google.com
a927c6fb87 DrMemory fix for Sobel overread.
BUG=262
TESTED=Sobel* unittests re-enabled.

Review URL: https://webrtc-codereview.appspot.com/2273008

git-svn-id: http://libyuv.googlecode.com/svn/trunk@800 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-24 11:10:22 +00:00
fbarchard@google.com
afd1d6b4ec Fix 2 bugs with Luma scale
BUG=267
TEST=luma unittest improved
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2260005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@794 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-20 01:00:54 +00:00
fbarchard@google.com
7a0d01ef8b Luma Table optimized for SSSE3
BUG=267
TESTED=lUMA unittest
R=jingning@google.com, nfullagar@google.com

Review URL: https://webrtc-codereview.appspot.com/2257004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@793 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-19 17:55:54 +00:00
fbarchard@google.com
2bbb64df2c FMA3 version of Polynomial
BUG=265
TEST=cpuid and Polynomial unittest
R=changjun.yang@intel.com

Review URL: https://webrtc-codereview.appspot.com/2217004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@790 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-16 16:42:19 +00:00
fbarchard@google.com
b38b73d88c ARGBLumaColorTable function.
BUG=267
TEST=Luma*
R=thorcarpenter@google.com

Review URL: https://webrtc-codereview.appspot.com/2202004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@783 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-10 20:34:09 +00:00
fbarchard@google.com
c3c06ec328 polynomial sse2 do 2 pixels at a time.
BUG=265
TEST=*Poly*
R=changjun.yang@intel.com

Review URL: https://webrtc-codereview.appspot.com/2195004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@782 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-10 08:16:06 +00:00
fbarchard@google.com
6da76f3b34 AVX version of Polynomial
BUG=265
TEST=untested
R=thorcarpenter@google.com, yunqingwang@google.com

Review URL: https://webrtc-codereview.appspot.com/2166004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@780 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-07 07:05:06 +00:00
fbarchard@google.com
ae0091e3a7 ARGBPolynomial for applying a 3 term polynomial matrix to pixels.
BUG=265
TEST=ARGBPolynomial
R=thorcarpenter@google.com

Review URL: https://webrtc-codereview.appspot.com/2159005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@778 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-03 19:20:47 +00:00
fbarchard@google.com
2154de414c Port InterpolateRows to AVX2
BUG=264
TEST=ARGBInterpolate*
R=changjun.yang@intel.com

Review URL: https://webrtc-codereview.appspot.com/2160004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@777 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-03 07:18:21 +00:00
fbarchard@google.com
c4a70492c0 blur unittest and fix for negative height
BUG=256
TEST=*Blur*
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2027005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@757 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-08-14 16:16:39 +00:00
fbarchard@google.com
5520710ef7 Add RGBColorTable which is like ARGBColorTable but only does first 3 channels.
BUG=none
TEST=none
R=dingkai@google.com, thorcarpenter@google.com, wuwang@google.com

Review URL: https://webrtc-codereview.appspot.com/1858004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@739 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-07-24 21:35:57 +00:00
fbarchard@google.com
37c0e648d2 Fix crash on wide images
BUG=239
TEST=LIBYUV_WIDTH=10000 out\release\libyuv_unittest
R=changjun.yang@intel.com, johannkoenig@google.com

Review URL: https://webrtc-codereview.appspot.com/1586006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@712 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-05-31 16:55:27 +00:00
fbarchard@google.com
b911428afd Adapt row interpolator to do YUV as well as ARGB without extrude so it can be used in I420Scale.
BUG=237
TEST=Scale*
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/1587004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@710 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-05-30 23:42:27 +00:00
fbarchard@google.com
bb92acade0 Unaligned math effects.
BUG=none
TEST=Add*
Review URL: https://webrtc-codereview.appspot.com/1345004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@670 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-19 18:10:38 +00:00
fbarchard@google.com
cd6056c01c InterpolateAny for unaligned and odd width interpolate. To be used in ARGBScaler in future.
BUG=208
TEST=ARGBInterpolate255_Unaligned
Review URL: https://webrtc-codereview.appspot.com/1324004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@662 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-15 03:05:08 +00:00
fbarchard@google.com
aa7988ff73 Enhanced Rep Mov String version of CopyRow for posix and use cpu detect for ERMS
BUG=213
TEST=none
Review URL: https://webrtc-codereview.appspot.com/1306008

git-svn-id: http://libyuv.googlecode.com/svn/trunk@658 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-12 00:44:33 +00:00
fbarchard@google.com
c56a55fc72 Sobel and SobelXY Neon port. Improved Bayer - did 8 at time version, and specialized G channel version.
BUG=201
TEST=libyuvTest.TestSobel and libyuvTest.TestSobelXY
Review URL: https://webrtc-codereview.appspot.com/1279006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@642 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-04 18:33:44 +00:00
fbarchard@google.com
9b4c00b908 Move vzeroupper to row functions to simplify caller and allow mix of avx2 and sse2. Impact reduced by row coalescing.
BUG=none
TEST=all tests pass with sde
Review URL: https://webrtc-codereview.appspot.com/1269009

git-svn-id: http://libyuv.googlecode.com/svn/trunk@641 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-04 05:54:59 +00:00
fbarchard@google.com
9d48df9ac4 Sobel port to posix. Improved unittest for C version.
BUG=201
TESTED=try bots
Review URL: https://webrtc-codereview.appspot.com/1242004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@619 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-24 20:12:25 +00:00
fbarchard@google.com
e8df16bd7c Sobel use G channel for consistency on all CPUs, better performance and full range of 0 to 255.
BUG=201
TESTED=out\release\libyuv_unittest --gtest_filter=*Sobel*
Review URL: https://webrtc-codereview.appspot.com/1225004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@614 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-22 04:47:14 +00:00
fbarchard@google.com
c93a137671 Replace Add+YToARGB with SobelRow
BUG=201
TEST=Sobel*
Review URL: https://webrtc-codereview.appspot.com/1217005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@611 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-19 23:51:09 +00:00
fbarchard@google.com
610e012d56 SobelXY which returns Sobel X, Sobel Y and Sobel as RGB values.
BUG=201
TEST=Sobel*
Review URL: https://webrtc-codereview.appspot.com/1210006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@610 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-19 22:24:06 +00:00
fbarchard@google.com
1e985bbc16 ARGBSobel
BUG=201
TEST=Sobel*
Review URL: https://webrtc-codereview.appspot.com/1221005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@609 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-19 19:23:44 +00:00
fbarchard@google.com
518833b983 Fix RGB565ToARGB_Any which uses SSE2 that requires ARGB alignment. Add row coalescing to convert_argb.cc. Improve coalescing on planar_functions.cc and convert_from_argb.cc. Use stride * 2 == width to test for even width. Apply coalescing to all functions that have same vertical subsampling.
BUG=197
TESTED=libyuv unittest passes where _Opt uses row coalescing.
Review URL: https://webrtc-codereview.appspot.com/1186004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@601 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-12 21:44:56 +00:00
fbarchard@google.com
11a524362d Coalesce rows
BUG=197
TESTED=out\release\libyuv_unittest --gtest_filter=*ARGBToI400*
Review URL: https://webrtc-codereview.appspot.com/1176004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@598 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-11 18:51:25 +00:00
fbarchard@google.com
1096543eaa ARGBShuffle AVX2
BUG=196
TESTED=BGRAToARGB*
Review URL: https://webrtc-codereview.appspot.com/1171006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@596 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-08 23:22:32 +00:00
fbarchard@google.com
51398e0be5 ARGBMirror AVX2
BUG=none
TEST=out\release\libyuv_unittest --gtest_filter=*ARGBMirror*
Review URL: https://webrtc-codereview.appspot.com/1159005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@594 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-06 00:57:48 +00:00
fbarchard@google.com
2007dca6dc Mirror
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/1162005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@592 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-05 22:40:55 +00:00
fbarchard@google.com
51d3e236cb AVX2 math functions for images
BUG=none
TEST=ARGBMultiply ARGBAdd and ARGBSubtract unittests.
Review URL: https://webrtc-codereview.appspot.com/1146006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@588 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-04 21:50:23 +00:00
fbarchard@google.com
c0d9c34690 Attenuate and Unattenuate Any variations for sse2, sss3 and avx2
BUG=190
TESTED=out\release\libyuv_unittest --gtest_filter=*Unatt*
Review URL: https://webrtc-codereview.appspot.com/1121005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@579 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-02-21 00:55:47 +00:00