239 Commits

Author SHA1 Message Date
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
446f91d040 Use vbroadcastf128 to copy m128 to ymm duplicating the value to high and low 128 bits. Allows shared variables.
BUG=none
TEST=avx2 unittests still pass.
R=mflodman@webrtc.org

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@803 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-30 06:49:10 +00:00
fbarchard@google.com
0d19fc5ed3 disable lint warning on movzx instructions
BUG=none
TEST=lint
R=johannkoenig@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@802 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-24 21:48:50 +00:00
fbarchard@google.com
47e856c632 Make I411ToARGB read 2 bytes to avoid overread.
BUG=262
TESTED=I411ToARGB
R=kjellander@webrtc.org

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@799 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-24 10:07:16 +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
a1ab194545 Color Table x86 reoptimized and ported to gcc.
BUG=266
TESTED=color table unittests
R=changjun.yang@intel.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@791 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-16 17:01:02 +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
851a702b39 Make static constants const for Visual C. Allows optimizer to collapse similar constants (SSE2 is subset of AVX2). GCC has compiler bug with const attributes, but Visual C does not.
BUG=254
TEST=windows build still passes and is smaller
R=cdelaunay@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@788 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-12 01:07:42 +00:00
fbarchard@google.com
c3b04796c2 ARGBPolynomial ported to gcc
BUG=265
TESTED=try bots
R=changjun.yang@intel.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@786 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-11 14:43:29 +00:00
fbarchard@google.com
7e7c7753ba Remove alignment from ARGBToRGB24 and ARGBToRAW to allow fast code to be used all of the time. Improves performance on Westmere and beyond, hurts performance for aligned buffers on older CPUs.
BUG=230
TESTED=try bot
R=nfullagar@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@785 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-11 01:18:36 +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
5442018d64 Improved polynomial for avx2 using vpmovzxbd and remove movdqa.
BUG=265
TESTED=libyuvTest.TestARGBPolynomial
R=jingning@google.com, ryanpetrie@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@781 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-09 18:14:03 +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
c140b9d150 CopyRow_SSE2 ported to Nacl with munging removed
BUG=253
TESTED=libyuvTest.TestCopyPlane
R=wuwang@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@765 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-08-19 19:12:39 +00:00
fbarchard@google.com
bb5ea8e4df Unattenuate port to NaCL
BUG=253
TESTED=validator
R=nfullagar@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@763 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-08-15 06:40:42 +00:00
fbarchard@google.com
9335518f41 Port some of the conversion routines to nacl
BUG=253
TEST=validator
R=nfullagar@google.com, ryanpetrie@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@748 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-08-07 20:29:18 +00:00
fbarchard@google.com
b8ffdc9e57 ColorMatrix and friends ported to NaCL
BUG=253
TESTED=ncval_x86_64.exe newlib/Release/nacltest_x86_64.nexe
R=nfullagar@chromium.org

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@747 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-08-06 22:27:01 +00:00
fbarchard@google.com
abfeea9b81 Math functions - add, substract, multiply and shade adapted to nacl friendly addressing.
BUG=253
TEST=out\release\libyuv_unittest --gtest_filter=*Add*
R=dingkai@google.com, nfullagar@chromium.org

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@746 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-08-06 20:47:18 +00:00
fbarchard@google.com
008ecea4fe NaCL port of Attenuate
BUG=253
TEST=out\release\libyuv_unittest --gtest_filter=*Attenuate*
R=nfullagar@chromium.org

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@745 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-08-06 00:51:26 +00:00
fbarchard@google.com
f2aa91a1ac replace static const with static to avoid internal compiler error with gcc
BUG=258
TEST=try bots
R=johannkoenig@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@743 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-08-02 17:48:24 +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
595c2427e8 Simple FixedDiv that does integer divide instruction with 64 bit dividend and 32 bit divisor to produce 32 bit result.
BUG=250
TEST=math_test
R=dingkai@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@736 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-06-18 22:08:16 +00:00
fbarchard@google.com
e5d3e10ee8 Add rounding to FixedDiv
BUG=250
TEST=unittest more exact
R=dingkai@google.com, ryanpetrie@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@735 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-06-18 20:37:14 +00:00
fbarchard@google.com
c9f0d966ed FixedDiv port to gcc
BUG=250
TEST=*Div*
R=ryanpetrie@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@733 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-06-18 18:58:33 +00:00
fbarchard@google.com
747ceb9fa5 FixedDiv using integers
BUG=250
TEST=fixed div unittest
R=dingkai@google.com, ryanpetrie@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@732 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-06-18 17:12:15 +00:00
fbarchard@google.com
eed4149e10 gcc msys compile ifdefs avoid Visual C inline
BUG=243
TEST=local compile with gcc
R=jkoleszar@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@717 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-06-04 17:58:57 +00:00
fbarchard@google.com
97c9626107 Test yuv scaler with scale factor of 1
BUG=none
TEST=ScaleDownBy1
R=gangji@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@715 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-06-03 15:09:58 +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
fc264019de Underflow sub fix
BUG=none
TEST=ARGBSubtract_Unaligned

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@667 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-16 02:44:10 +00:00
fbarchard@google.com
2b115a5237 Remove cruft.
BUG=208
TEST=lint

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@665 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-15 20:06:52 +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
c297d103f1 I420ToARGB for Haswell.
BUG=216
TEST=I420ToARGB
Review URL: https://webrtc-codereview.appspot.com/1314004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@660 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-12 07:26:24 +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
98a1fbf5e9 Scale up columns 2 pixels at a time
BUG=208
TEST=out\release\libyuv_unittest --gtest_filter=*Scale*640*
Review URL: https://webrtc-codereview.appspot.com/1294004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@648 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-07 04:07:08 +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
91c50c3a7d ARGBToYJ_AVX2 port to AVX2.
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/1272008

git-svn-id: http://libyuv.googlecode.com/svn/trunk@640 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-03 23:47:10 +00:00
fbarchard@google.com
55c20a861e Fix movdqu in yuy2
BUG=none
TEST=ToYUY2*
Review URL: https://webrtc-codereview.appspot.com/1271005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@634 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-02 22:03:49 +00:00
fbarchard@google.com
f8e9017685 switch toyuy2 from aligned to unaligned
BUG=211
TESTED=ToYUY2*
Review URL: https://webrtc-codereview.appspot.com/1274005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@633 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-02 21:18:12 +00:00
fbarchard@google.com
050b39a5cb Recomputed JPeg coefficients normalized to 128. Apply to ARGBGray function reusing YJ function/coefficients and rounding.
BUG=201
TESTED=Gray unittest improved
Review URL: https://webrtc-codereview.appspot.com/1269006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@629 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-01 20:07:14 +00:00
fbarchard@google.com
8c9de166a1 ERMS
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/1265004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@625 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-28 09:33:26 +00:00
fbarchard@google.com
4e0d7cc2c6 Y coefficients for J420 need to be scaled by 255/219 to full range.
BUG=159
TESTED=out\release\libyuv_unittest --gtest_filter=*J*
Review URL: https://webrtc-codereview.appspot.com/1264004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@624 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-27 07:35:03 +00:00
fbarchard@google.com
cfaa66c041 ARGBToJ420 and ARGBToJ400 - Full range YUV Jpeg style.
BUG=159
TEST=*J4*
Review URL: https://webrtc-codereview.appspot.com/1243004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@622 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-26 09:14:46 +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
e1247eec94 Sobel functions
BUG=201
TEST=none
Review URL: https://webrtc-codereview.appspot.com/1200004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@608 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-18 22:40:15 +00:00
fbarchard@google.com
805fefb9d8 Unattenutate with work around for vpgatherdd on avx2
BUG=none
TEST=ARGBUnattenuate*
Review URL: https://webrtc-codereview.appspot.com/1183004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@599 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-12 01:59:48 +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
304a611d80 Unaligned version of ABGRToARGB for SSSE3
BUG=196
TESTED=libyuv_unittest --gtest_filter=*ABGRToARGB*
Review URL: https://webrtc-codereview.appspot.com/1166006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@595 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-07 21:48:02 +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
e1bb5d9430 AVX2 version of half rows.
BUG=none
TEST=out\release\libyuv_unittest.exe --gtest_filter=*I422ToI420*
Review URL: https://webrtc-codereview.appspot.com/1157004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@590 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-05 06:32:03 +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
83a63e65a6 Change YUV_DISABLE_ASM to LIBYUV_DISABLE_NEON, LIBYUV_DISABLE_MIPS, LIBYUV_DISABLE_X86
BUG=189
TESTED=try
Review URL: https://webrtc-codereview.appspot.com/1113006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@582 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-02-27 00:20:29 +00:00
fbarchard@google.com
787f827663 Unattenuate multiply alpha by 1.
BUG=190
TESTED=planar_test
Review URL: https://webrtc-codereview.appspot.com/1114005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@578 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-02-21 00:08:56 +00:00
fbarchard@google.com
3c7bb050bd Unattenuate AVX2
BUG=190
TEST=planar_test
Review URL: https://webrtc-codereview.appspot.com/1112004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@577 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-02-20 22:18:36 +00:00
fbarchard@google.com
d5ee3dc912 AVX2 Attenuate
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/1101014

git-svn-id: http://libyuv.googlecode.com/svn/trunk@576 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-02-19 12:26:13 +00:00
fbarchard@google.com
caf6e2470b remove vpermq from ARGBToUV
BUG=none
TEST=convert_test
Review URL: https://webrtc-codereview.appspot.com/1107005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@575 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-02-15 18:33:20 +00:00
fbarchard@google.com
d8b73cacbe fix ARGBToI444 UV code to use signed math
BUG=148
TESTED=out\release\libyuv_unittest --gtest_filter=*ARGBToI444_Opt
Review URL: https://webrtc-codereview.appspot.com/1105008

git-svn-id: http://libyuv.googlecode.com/svn/trunk@574 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-02-15 07:49:15 +00:00
fbarchard@google.com
b444bae883 ARGBToI400 and ARGBToI411 using AVX2. YUY2ToI420 and UVYVToI420 use AVX2. CopyPlane use rep movsb for AVX2. CopyPlane2 use rep movsb for AVX2 and CopyPlane if strides match AVX2, which will do a single rep movsb for entire image if stride == width. MergeUV for I420ToNV12.
BUG=181
TESTED=unittests pass
Review URL: https://webrtc-codereview.appspot.com/1103007

git-svn-id: http://libyuv.googlecode.com/svn/trunk@569 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-02-11 20:30:41 +00:00
fbarchard@google.com
c9562334d7 SplitUV 3 operand AVX2
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/1105005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@568 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-02-10 03:42:51 +00:00
fbarchard@google.com
208280598e Remove vmovdqa from UV code
BUG=181
TESTED=c:\intelsde\sde -hsw -- out\release\libyuv_unittest.exe --gtest_filter=*ARGBToI420*
Review URL: https://webrtc-codereview.appspot.com/1091010

git-svn-id: http://libyuv.googlecode.com/svn/trunk@567 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-02-08 23:27:22 +00:00
fbarchard@google.com
551d2b297e AVX2 version of ARGBToI420
BUG=181
TEST=unittest
Review URL: https://webrtc-codereview.appspot.com/1090005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@566 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-02-08 20:57:52 +00:00
fbarchard@google.com
f5f6fd2aa7 fix spaces on asm statements
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/1101006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@562 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-02-06 18:23:09 +00:00
fbarchard@google.com
cde587092f Replace two spaces with one after .
BUG=none
TEST=lint
Review URL: https://webrtc-codereview.appspot.com/1063010

git-svn-id: http://libyuv.googlecode.com/svn/trunk@553 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-01-28 00:02:35 +00:00
fbarchard@google.com
573a883dd6 Subtract 2 images.
BUG=179
TEST=planar unittest
Review URL: https://webrtc-codereview.appspot.com/1073004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@551 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-01-24 23:08:12 +00:00
fbarchard@google.com
8c4e5e284c Specialize SSE2 filter
BUG=177
TEST=unittest scale*
Review URL: https://webrtc-codereview.appspot.com/1069005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@550 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-01-23 02:05:12 +00:00
fbarchard@google.com
8811289be7 Interpolate ported to SSE2
BUG=177
TEST=out\release\libyuv_unittest --gtest_filter=*
Review URL: https://webrtc-codereview.appspot.com/1060006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@549 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-01-22 19:16:07 +00:00
fbarchard@google.com
83e1b17cc0 Add 2 ARGB Images together and store to destination
BUG=175
TEST=Add unittest
Review URL: https://webrtc-codereview.appspot.com/1049004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@543 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-01-18 23:03:56 +00:00
fbarchard@google.com
8fa7634994 Blend style multiple
BUG=175
TEST=Multiply unittest
Review URL: https://webrtc-codereview.appspot.com/1048004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@542 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-01-18 02:25:04 +00:00
fbarchard@google.com
41e972ec31 ARGBToI444_SSSE3 UV function ported. Thanks to changjun.yang@intel.com
BUG=148
TESTED=out\release\libyuv_unittest --gtest_filter=*ARGBToI* | grep ms
Review URL: https://webrtc-codereview.appspot.com/1019011

git-svn-id: http://libyuv.googlecode.com/svn/trunk@539 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-01-16 05:54:56 +00:00
fbarchard@google.com
b3c1a3fe79 ARGB Multiply
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/1028010

git-svn-id: http://libyuv.googlecode.com/svn/trunk@537 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-01-12 00:00:59 +00:00
fbarchard@google.com
b94b139e86 Shade ported to Neon
BUG=167
TESTED=planar test Shade*
Review URL: https://webrtc-codereview.appspot.com/969014

git-svn-id: http://libyuv.googlecode.com/svn/trunk@509 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-12-03 20:36:40 +00:00
fbarchard@google.com
1d160cb99f Attenuate AGRB pixels NEON optimized
BUG=164
TEST=./libyuv_unittest --gtest_filter=*Atten*
Review URL: https://webrtc-codereview.appspot.com/937031

git-svn-id: http://libyuv.googlecode.com/svn/trunk@506 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-11-28 20:02:55 +00:00
fbarchard@google.com
dd3b137f5d ARGBBlend unaligned unittest
BUG=160
TEST=libyuvTest.ARGBBlend_Unaligned
Review URL: https://webrtc-codereview.appspot.com/935019

git-svn-id: http://libyuv.googlecode.com/svn/trunk@498 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-11-20 19:30:04 +00:00
fbarchard@google.com
b5491759b4 Neon optimized argb filter row for bilinear scale and Effects Interpolate.
BUG=none
TEST=./libyuv_unittest --gtest_filter=*ARGBScale*
Review URL: https://webrtc-codereview.appspot.com/964017

git-svn-id: http://libyuv.googlecode.com/svn/trunk@497 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-11-20 09:44:46 +00:00
fbarchard@google.com
f08ac6bb09 Rename row functions so they are all SomethingRow_CPU
BUG=133
TEST=still builds
Review URL: https://webrtc-codereview.appspot.com/939020

git-svn-id: http://libyuv.googlecode.com/svn/trunk@491 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-11-15 00:21:14 +00:00
fbarchard@google.com
bdf7cb5914 RGB formats converted to YUV with Neon
BUG=none
TEST=convert_test
Review URL: https://webrtc-codereview.appspot.com/936013

git-svn-id: http://libyuv.googlecode.com/svn/trunk@471 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-11-05 23:40:11 +00:00
fbarchard@google.com
30859f75f2 Neon YToARGB and fix SSE2 to match C version
BUG=none
TEST=YToARGB_Opt
Review URL: https://webrtc-codereview.appspot.com/966007

git-svn-id: http://libyuv.googlecode.com/svn/trunk@466 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-11-02 09:51:29 +00:00
fbarchard@google.com
00b69a2fe6 I400ToARGB_Neon optimized
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/935010

git-svn-id: http://libyuv.googlecode.com/svn/trunk@465 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-11-02 06:03:28 +00:00
fbarchard@google.com
af1aa56f0b Make I420ToARGB1555, I420ToARGB4444 and I420ToRGB565 call a single function per row, which may be implemented in assembly, but for now the function calls 2 functions internally.
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/965006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@459 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-10-30 21:11:54 +00:00
fbarchard@google.com
15449263c4 NV12ToRGB565 use NV12ToARGB any row function
BUG=136
TEST=sudo LIBYUV_REPEAT=1000 nice --5 ./libyuv_unittest --gtest_filter=*565* | grep ms
Review URL: https://webrtc-codereview.appspot.com/965004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@452 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-10-29 16:24:53 +00:00
fbarchard@google.com
e0d8648b6a MergeUV aligned and SplitUV cpu detect combined with width check.
BUG=none
TEST=libyuvTest.I420ToNV12_Any
Review URL: https://webrtc-codereview.appspot.com/937005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@451 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-10-27 19:07:55 +00:00
fbarchard@google.com
1dafd444ba MergeUV backport to SSE2
BUG=135
TESTED=unitest I420ToNV12
Review URL: https://webrtc-codereview.appspot.com/943006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@447 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-10-26 08:27:36 +00:00
fbarchard@google.com
db694edfc2 SplitUV_Any variations for all CPUS.
BUG=126
TEST=convert tests NV12 with alignments
Review URL: https://webrtc-codereview.appspot.com/896007

git-svn-id: http://libyuv.googlecode.com/svn/trunk@426 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-10-17 21:54:04 +00:00
fbarchard@google.com
9de8867ab6 I422ToYUY2_NEON
BUG=none
TEST=convert_test *I422ToYUY2*
Review URL: https://webrtc-codereview.appspot.com/869008

git-svn-id: http://libyuv.googlecode.com/svn/trunk@413 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-10-12 06:23:33 +00:00
fbarchard@google.com
4de0c439aa Enable SSE version of I420ToRAW/RGB24 for Linux/Mac/ChromeOS x86
BUG=116
TEST=xcodebuild/Release/libyuv_unittest --gtest_filter=*I420To*R*Opt
Review URL: https://webrtc-codereview.appspot.com/863015

git-svn-id: http://libyuv.googlecode.com/svn/trunk@402 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-10-11 01:25:46 +00:00
fbarchard@google.com
8d37dd5c20 Any conversions fix for RGB 3 bytes. Fix for overread valgrind. Avoid memcpy. Add _Any unittests for all conversions.
BUG=121
TEST=./libyuv_unittest --gtest_filter=*Any
Review URL: https://webrtc-codereview.appspot.com/873010

git-svn-id: http://libyuv.googlecode.com/svn/trunk@401 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-10-11 00:07:30 +00:00
fbarchard@google.com
e91bdaca36 Move HalfRow to row_win and port to row_neon
BUG=118
TEST=libyuvTest.I420ToI422_OptVsC (247 ms)
Review URL: https://webrtc-codereview.appspot.com/855012

git-svn-id: http://libyuv.googlecode.com/svn/trunk@400 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-10-09 21:09:33 +00:00
fbarchard@google.com
827de16bb1 I422ToRGB24Row_SSSE3 in 1 pass. Internally converts to ARGB then packs down to RGB.
BUG=116
TEST=libyuv unittest
Review URL: https://webrtc-codereview.appspot.com/863013

git-svn-id: http://libyuv.googlecode.com/svn/trunk@399 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-10-09 03:48:26 +00:00
fbarchard@google.com
64ce0ab544 Move Neon source to its own files.
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/860009

git-svn-id: http://libyuv.googlecode.com/svn/trunk@396 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-10-09 00:05:29 +00:00
fbarchard@google.com
fc7314e86b Add exports to allow libyuv to be built as a shared lib.
BUG=99
TEST=shared lib builds without impact and unittests link against import lib.
Review URL: https://webrtc-codereview.appspot.com/844005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@379 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-09-27 02:17:51 +00:00
fbarchard@google.com
aa4750f86d Move sub before store to avoid wait on core2.
BUG=101
TEST=none
Review URL: https://webrtc-codereview.appspot.com/846006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@377 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-09-26 17:04:51 +00:00
fbarchard@google.com
142f6c4ed5 Move row.h to include and remove rotate_priv.h
BUG=93
TESTED=try server
Review URL: https://webrtc-codereview.appspot.com/811004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@360 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-09-18 20:56:51 +00:00
fbarchard@google.com
25dc05858e RGBAToI420_SSSE3 and I420ToRGBA_SSSE3 implemented.
BUG=78
TESTED=gcl lint
Review URL: https://webrtc-codereview.appspot.com/796009

git-svn-id: http://libyuv.googlecode.com/svn/trunk@359 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-09-18 05:35:30 +00:00