238 Commits

Author SHA1 Message Date
fbarchard@google.com
7c8e16f82a Add MJPGToARGB conversion directly to ARGB
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/635006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@280 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-06-05 17:27:51 +00:00
fbarchard@google.com
4c416e8849 Fix for I444ToARGBRow_Unaligned_SSSE3, I422ToARGBRow_Unaligned_SSSE3, I411ToARGBRow_Unaligned_SSSE3 on Windows using movdqu instead of movdqa. break YUVTORGB into 2 macros - one to fetch pixels, another to do YUV conversion. Less duplicated source and lends itself to future YUV formats.
BUG=none
TEST=WebRtcVideoFrameTest.ConvertToARGBBufferStride
Review URL: https://webrtc-codereview.appspot.com/644004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@279 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-06-05 15:48:07 +00:00
fbarchard@google.com
43279ffda0 ARGBToI422 which is similar to ARGBToI420
BUG=none
TEST=libyuvTest.ARGBToI422_CvsOPT (836 ms)
Review URL: https://webrtc-codereview.appspot.com/637006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@278 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-06-05 02:09:39 +00:00
fbarchard@google.com
e214fe3f07 I411ToARGB doing 2 UV values with 8 Y values
BUG=40
TEST=planar_test
Review URL: https://webrtc-codereview.appspot.com/637005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@277 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-06-04 23:47:11 +00:00
fbarchard@google.com
6d6b7709f7 Fix RGB565ToARGB_SSE2. Expose rgb conversions. Low levels were already there for i420 to rgb, but rgb to rgb functions were not exposed. Added unittests.
BUG=none
TEST=planar unittests
Review URL: https://webrtc-codereview.appspot.com/632004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@276 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-06-04 15:29:15 +00:00
fbarchard@google.com
85869c87f3 UYVYToARGB and ARGBToRGB565 added for more ARGB support completeness.
BUG=38
TEST=none
Review URL: https://webrtc-codereview.appspot.com/624004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@275 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-06-01 05:44:36 +00:00
fbarchard@google.com
7afffcc4d0 For cpu's with Neon, set arm as well. Make unittest allow testdata unaccessable but try proc/cpuinfo
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/610005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@273 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-30 18:30:03 +00:00
fbarchard@google.com
ab41581844 Change cpu id constants to hex to indicate they are flags. Reserve values for future flags. make unittest print in hex. Add environment variables to disable sse42 and avx.
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/608006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@272 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-30 15:56:32 +00:00
fbarchard@google.com
4ae6b46ce1 Add SSE42 and AVX detect
BUG=none
TEST=libyuvTest.TestCpuHas
Review URL: https://webrtc-codereview.appspot.com/607006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@271 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-30 03:02:52 +00:00
fbarchard@google.com
221e602f8a ARGBSepia planarfunction for converting a region of ARGB image to Sepia tone. ARGBGray optimized weaving of alpha value. 551 ms from 568 ms.
BUG=none
TEST=libyuv_unittest --gtest_filter=*ARGBSepia*
Review URL: https://webrtc-codereview.appspot.com/573008

git-svn-id: http://libyuv.googlecode.com/svn/trunk@270 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-21 22:24:41 +00:00
fbarchard@google.com
ffaea7eee3 ARGBGray function for convertion a rectangle of ARGB to gray scale
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/582007

git-svn-id: http://libyuv.googlecode.com/svn/trunk@269 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-18 19:43:59 +00:00
fbarchard@google.com
9c02ba532f ARGBUnattenuateRow_C use same table as ARGBUnattenuateRow_SSE2. omit-frame-pointer for ScaleRowDown38_3_Int_NEON
BUG=35
TESTED=disable asm and run unittest on x86
Review URL: https://webrtc-codereview.appspot.com/585004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@268 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-17 22:49:31 +00:00
fbarchard@google.com
600587d1f0 Change scale 3/8 to use scratch registers for constants
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/576011

git-svn-id: http://libyuv.googlecode.com/svn/trunk@267 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-15 05:41:56 +00:00
fbarchard@google.com
f2d84dddd2 scale ported to OSX for 32/64 bit. Required breaking up some functions into 2 or 3 asm inlines to set constants. Reworked storing of 6 bytes on all platforms for 3/4 scale by storing first 4 bytes and then storing last 4 bytes, overlapping 2, in order to stay within SSE2 registers.
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/582004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@266 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-14 20:23:35 +00:00
fbarchard@google.com
f368565b95 cleanup ScaleRowDown8Int_SSE2 and other simple gcc versions
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/581004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@265 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-10 00:01:03 +00:00
fbarchard@google.com
68caaed871 Port Even ARGBScale to gcc
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/566010

git-svn-id: http://libyuv.googlecode.com/svn/trunk@264 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-09 22:52:23 +00:00
fbarchard@google.com
c7bd1dbea6 remove extra lea on gcc libyuv scale
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/562007

git-svn-id: http://libyuv.googlecode.com/svn/trunk@263 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-09 21:55:02 +00:00
fbarchard@google.com
ca4749dd4d Scale Even sizes
BUG=none
TEST=build\release\libyuv_unittest.exe  --gtest_catch_exceptions=0 --gtest_filter=*ARGBScale*
Review URL: https://webrtc-codereview.appspot.com/570005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@262 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-09 20:27:10 +00:00
fbarchard@google.com
2e786a73ce Filter Rows in C fix
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/564005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@261 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-09 02:33:58 +00:00
fbarchard@google.com
8b14c5c4e4 Rewrite filtering for benefit of Mac as a single ASM block. Builds both 32 and 64 bit.
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/577004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@260 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-09 00:41:13 +00:00
fbarchard@google.com
0b0e91792f libyuv::CpuId as function to reduce header dependencies
BUG=none
TEST=libyuv_unittest.exe  --gtest_catch_exceptions=0 --gtest_filter=*Cpu*
Review URL: https://webrtc-codereview.appspot.com/566007

git-svn-id: http://libyuv.googlecode.com/svn/trunk@259 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-08 02:04:22 +00:00
fbarchard@google.com
d05ec087d9 expose __cpuid for gcc/visual c compatibility
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/574004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@258 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-07 22:36:39 +00:00
fbarchard@google.com
0e0815617b Disable ARGB scaling on gcc 32 bit to avoid running out of GPR registers
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/563006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@257 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-07 22:33:51 +00:00
fbarchard@google.com
4e6c1fd42a scale_argb module for point and bilinear scaling of ARGB
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/549004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@256 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-03 06:17:44 +00:00
fbarchard@google.com
5bf29b59db p2align all loops, copy stride to local for scale, and copy last byte in bilinear more efficiently
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/547007

git-svn-id: http://libyuv.googlecode.com/svn/trunk@255 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-02 00:10:16 +00:00
fbarchard@google.com
f906ae1360 scale to half size handle unaligned memory
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/543006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@254 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-05-01 00:30:51 +00:00
fbarchard@google.com
87e2390fd8 YUY2 directly to ARGB.
BUG=31
TEST=none
Review URL: https://webrtc-codereview.appspot.com/537003

git-svn-id: http://libyuv.googlecode.com/svn/trunk@253 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-27 20:14:09 +00:00
fbarchard@google.com
5566302866 AddRow function to help implement box filter
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/527002

git-svn-id: http://libyuv.googlecode.com/svn/trunk@252 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-26 00:01:41 +00:00
fbarchard@google.com
5ff3a8fec5 ARGBBlendRow1_SSSE3 added to allow SSSE3 only alpha blending. Saves on SSE2 cpu dispatching
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/518002

git-svn-id: http://libyuv.googlecode.com/svn/trunk@251 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-24 19:43:45 +00:00
fbarchard@google.com
da5cc4274b Prune SSE2 code out when building specifically for SSSE3
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/517001

git-svn-id: http://libyuv.googlecode.com/svn/trunk@250 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-24 06:01:32 +00:00
fbarchard@google.com
ebe9ae9b21 scale unrolled to 2 pixels for C code
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/520001

git-svn-id: http://libyuv.googlecode.com/svn/trunk@249 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-24 06:01:18 +00:00
fbarchard@google.com
85ebc8e20b HashDjb2_SSE41 ported to gcc. gcc 4.5 required for pmulld instruction.
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/506002

git-svn-id: http://libyuv.googlecode.com/svn/trunk@248 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-23 20:09:35 +00:00
fbarchard@google.com
c428470315 Scale fix for Neon
BUG=19
TEST=none
Review URL: https://webrtc-codereview.appspot.com/504002

git-svn-id: http://libyuv.googlecode.com/svn/trunk@247 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-22 15:00:50 +00:00
fbarchard@google.com
5e642d0ea7 Neon constants need address of not value
BUG=19
TEST=none
Review URL: https://webrtc-codereview.appspot.com/510002

git-svn-id: http://libyuv.googlecode.com/svn/trunk@246 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-21 01:04:46 +00:00
fbarchard@google.com
4660679ff3 fix missing asm and version
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/508003

git-svn-id: http://libyuv.googlecode.com/svn/trunk@245 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-20 23:30:51 +00:00
fbarchard@google.com
810cd91079 ARGBUnattenuateRow_SSE2 use reciprocal table and pmul
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/497001

git-svn-id: http://libyuv.googlecode.com/svn/trunk@244 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-20 20:15:27 +00:00
fbarchard@google.com
f2c86d01cc SSSE3 version using pshufb for ARGBAttenuateRow_SSSE3
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/490011

git-svn-id: http://libyuv.googlecode.com/svn/trunk@243 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-18 19:12:41 +00:00
fbarchard@google.com
8ed54222e7 Attenuation ported to SSE2
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/485009

git-svn-id: http://libyuv.googlecode.com/svn/trunk@242 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-18 17:07:07 +00:00
fbarchard@google.com
f86ba32b9d Unattenuate using a reciprocal
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/487006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@241 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-18 00:35:55 +00:00
fbarchard@google.com
829e7ea402 ARGBAttenuate and ARGBUnattenuate for converting to/from attentuated ARGB
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/490008

git-svn-id: http://libyuv.googlecode.com/svn/trunk@240 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-17 00:49:28 +00:00
fbarchard@google.com
96af870c8a Port Blend SSSE3 to gcc
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/491001

git-svn-id: http://libyuv.googlecode.com/svn/trunk@239 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-06 18:22:27 +00:00
fbarchard@google.com
4d3bd8343b unaligned sse4 djb2 cleanup
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/486001

git-svn-id: http://libyuv.googlecode.com/svn/trunk@238 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-06 00:27:09 +00:00
fbarchard@google.com
ddf9051bd9 DJB2 hash with SSE4 pmulld
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/484002

git-svn-id: http://libyuv.googlecode.com/svn/trunk@237 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-05 20:44:03 +00:00
fbarchard@google.com
c5d44a0c5e cpuid add sse41 and x86
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/485001

git-svn-id: http://libyuv.googlecode.com/svn/trunk@236 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-05 20:39:42 +00:00
fbarchard@google.com
1702ec78f8 use movdqu on 2nd source for blend
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/479001

git-svn-id: http://libyuv.googlecode.com/svn/trunk@235 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-05 01:15:12 +00:00
fbarchard@google.com
d2f4413d29 Remove old alpha blend, expose GetARGB2Blend, fix ComputeSumSquareErrorPlane on SSE2
BUG=29
TEST=none
Review URL: https://webrtc-codereview.appspot.com/469005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@234 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-04 21:53:27 +00:00
fbarchard@google.com
c757f308ea Alpha blend 2 sources and store to a destination. Useful for A under B blending.
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/472005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@233 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-04-03 00:49:16 +00:00
fbarchard@google.com
952a507ca6 I420ToARGB without row buffer faster and unlimited in size. Uses SSSE3 unaligned for multiples of 8 and C for remainder
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/470001

git-svn-id: http://libyuv.googlecode.com/svn/trunk@232 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-03-30 18:10:50 +00:00
fbarchard@google.com
f3fb7b6920 Lint cleanup for Neon and Visual C inline.
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/464002

git-svn-id: http://libyuv.googlecode.com/svn/trunk@231 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-03-29 23:19:34 +00:00
fbarchard@google.com
5b22506b14 With an asm() away lint, this cleans up most remaining issues.
BUG=none
TEST=lint filename
Review URL: https://webrtc-codereview.appspot.com/464001

git-svn-id: http://libyuv.googlecode.com/svn/trunk@230 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-03-29 02:19:26 +00:00