208 Commits

Author SHA1 Message Date
fbarchard@google.com
c2295807bd Reduce alignment for loops from 16 bytes to 4 bytes. Reduces outer loop overhead without hurting innerloop time.
BUG=none
TESTED=try bots
R=fbarchard@chromium.org, mflodman@webrtc.org

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@880 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-12-02 15:57:39 +00:00
fbarchard@google.com
a0630d77f0 Report of affine to nacl using %k0
BUG=none
TEST=none
R=johannkoenig@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@855 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-11-15 17:42:44 +00:00
fbarchard@google.com
c2a889eb55 Bump reciprocal up by 1
BUG=none
TEST=none
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@847 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-11-11 05:14:13 +00:00
fbarchard@google.com
191ab18073 Use fixed point for small blurs
BUG=none
TEST=libyuvTest.ARGBBlurSmall_Opt
R=ryanpetrie@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@843 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-11-05 18:19:11 +00:00
fbarchard@google.com
4a4b7374c1 Load matrix with one vector and splat to 4 different ones.
BUG=none
TEST=none
R=ryanpetrie@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@838 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-11-01 21:29:45 +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
21796c94aa Move constant to its own asm block to save 3 GPR registers for main loop
BUG=267
TESTED=32 bit mac build

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@832 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-29 08:43:13 +00:00
fbarchard@google.com
ca8f826ba3 Luma fetch 4 pixels
BUG=267
TEST=Luma*
R=ryanpetrie@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@831 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-28 22:53:22 +00:00
fbarchard@google.com
4c736098d6 Use packssdw which is SSE2 not packusdw which is SSSE4.
BUG=none
TEST=Sobel* on AMD cpu
R=ryanpetrie@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@829 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-28 19:12:49 +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
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
8b0cdb4a6e ARGBShuffle_SSE2 ported to GCC and NaCL, and HalfRow_SSE2 ported to NaCL.
BUG=271
TESTED=ABGRToARGB on linux
R=johannkoenig@google.com, nfullagar@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@808 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-08 00:15:34 +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
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