60 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
fbarchard@google.com
299c97412c Blend SSSE3 for Win32 but not Win64
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/461008

git-svn-id: http://libyuv.googlecode.com/svn/trunk@226 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-03-28 02:09:40 +00:00
fbarchard@google.com
8670b1ae04 SSSE3 version of alpha blender does pshufb instead of shift and 2 pshufw.
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/446008

git-svn-id: http://libyuv.googlecode.com/svn/trunk@219 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-03-19 16:50:03 +00:00
fbarchard@google.com
91ab139558 inline version of alpha blend
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/446006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@216 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-03-15 19:40:07 +00:00
fbarchard@google.com
ba3aeed3b8 gcc port of alpha blend and add align to row_win loops
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/439006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@207 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-03-07 18:24:51 +00:00
fbarchard@google.com
fe9f4ad808 alphablend test for opaque and transparent
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/436005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@205 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-03-07 02:43:18 +00:00
fbarchard@google.com
965fb914ea alpha blend argb into argb
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/428009

git-svn-id: http://libyuv.googlecode.com/svn/trunk@203 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-03-06 18:49:39 +00:00
fbarchard@google.com
16a96645b4 splituv and mirroruv in row use 2 pixels at a time in C
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/432006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@201 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-03-02 22:38:09 +00:00
fbarchard@google.com
0b9a65b0dc CopyRow_Neon reimplemented with vldm
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/412001

git-svn-id: http://libyuv.googlecode.com/svn/trunk@190 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-02-24 21:17:17 +00:00
fbarchard@google.com
aaf5f675b3 copyrow for neon but not thumb for cros
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/408004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@189 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-02-24 10:58:45 +00:00
fbarchard@google.com
f1b6063f50 port rgb to posix
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/395010

git-svn-id: http://libyuv.googlecode.com/svn/trunk@176 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-02-17 19:27:20 +00:00
fbarchard@google.com
19932f8dbc CopyRow instead of memcpy for copying planes
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/396008

git-svn-id: http://libyuv.googlecode.com/svn/trunk@175 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-02-16 22:19:14 +00:00
fbarchard@google.com
2d11d43a6e shuffle functions so convert.h is all formats to I420 and convert_from.h is from I420 to all formats
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/395006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@174 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-02-16 02:50:39 +00:00
fbarchard@google.com
b95dbf2495 check pointer of last pixel and last pixel + 64 are in the same page.
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/387006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@170 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-02-11 01:18:30 +00:00
fbarchard@google.com
e5f3fd4cc8 YUY2 and UYVY Unaligned and any versions
TEST=none
BUG=none
Review URL: https://webrtc-codereview.appspot.com/379009

git-svn-id: http://libyuv.googlecode.com/svn/trunk@168 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-02-06 22:40:32 +00:00
fbarchard@google.com
b5b27d131a ARGBToYUV with sse3 on any size/alignment
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/366011

git-svn-id: http://libyuv.googlecode.com/svn/trunk@161 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-01-28 08:44:35 +00:00
fbarchard@google.com
caf3952548 YUV and ARGB to RGB formats w/ Any variations to allow destination to be misaligned and any number of bytes
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/368009

git-svn-id: http://libyuv.googlecode.com/svn/trunk@160 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-01-27 01:45:22 +00:00
fbarchard@google.com
42831e0aae Mirror a plane at a time so each can check cpu/alignment independently
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/370001

git-svn-id: http://libyuv.googlecode.com/svn/trunk@148 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-01-21 02:54:17 +00:00
fbarchard@google.com
ba03e4d99e Relax alignment checks especially when doing 2 step conversions
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/368004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@147 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-01-21 00:16:29 +00:00
fbarchard@google.com
882ddbd9c2 wrapper for yuv to argb that handles destination misalignment and odd widths by using a memcpy
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/364001

git-svn-id: http://libyuv.googlecode.com/svn/trunk@145 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-01-20 18:10:14 +00:00
fbarchard@google.com
8af21a57f5 remove wrapper functions that call 2 row functions internally
BUG=none
TEST=still builds/runs
Review URL: https://webrtc-codereview.appspot.com/350016

git-svn-id: http://libyuv.googlecode.com/svn/trunk@139 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-01-19 00:28:31 +00:00
fbarchard@google.com
9eefb2e8dd ARGBToRGB functions optimized
BUG=none
TEST=media_unittest.exe --gunit_catch_exceptions=0 --yuvconverter_repeat=1000 --gunit_filter=LmiVideoFrameTest.ConvertTo*R*
Review URL: https://webrtc-codereview.appspot.com/355002

git-svn-id: http://libyuv.googlecode.com/svn/trunk@138 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-01-18 23:56:30 +00:00
fbarchard@google.com
ccd6d9b2de ARGB1555ToARGBRow_SSE2
BUG=none
TEST=media_unittest
Review URL: http://webrtc-codereview.appspot.com/349006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@133 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-01-13 19:26:50 +00:00
fbarchard@google.com
6aa761da6d RGB565ToARGB_SSE2
BUG=none
TEST=media_unittest
Review URL: http://webrtc-codereview.appspot.com/347011

git-svn-id: http://libyuv.googlecode.com/svn/trunk@132 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-01-13 00:59:49 +00:00
fbarchard@google.com
ba1f526926 rewrite of I420ToRGB565 etc using row functions
BUG=none
TEST=media_unittest
Review URL: http://webrtc-codereview.appspot.com/345004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@131 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-01-12 19:22:41 +00:00
fbarchard@google.com
20005e64e3 fix convertToI420 rowbytes and add assembly calls
BUG=none
TEST=camtool
Review URL: http://webrtc-codereview.appspot.com/343008

git-svn-id: http://libyuv.googlecode.com/svn/trunk@130 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-01-11 21:16:10 +00:00
fbarchard@google.com
a7d977ceae RGBP, RGBO, R444 fourcc support
BUG=none
TEST=camtool with xo175
Review URL: http://webrtc-codereview.appspot.com/347001

git-svn-id: http://libyuv.googlecode.com/svn/trunk@128 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-01-09 20:01:08 +00:00
frkoenig@google.com
6011ff7353 Fix YUVToARGB/BGRA/ABGR linking.
Broken by previous move to using extern "C" for functions.
This moves the function prototype into the extern "C" block
and gives the functions the correct name when linking.
Review URL: http://webrtc-codereview.appspot.com/333027

git-svn-id: http://libyuv.googlecode.com/svn/trunk@124 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-01-04 00:15:17 +00:00
fbarchard@google.com
373cdbdc58 reorder stores for FastConvertYUVToABGRRow_SSSE3 and FastConvertYUVToBGRARow_SSSE3. ReverseRow_SSE2. cpu detect allow environment variable override set LIBYUV_DISABLE_SSSE3=1 set LIBYUV_DISABLE_SSE2=1. Reorder stores in rotate for core2
BUG=none
TEST=none
Review URL: http://webrtc-codereview.appspot.com/317010

git-svn-id: http://libyuv.googlecode.com/svn/trunk@107 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-12-14 21:10:07 +00:00
fbarchard@google.com
fe5ff7ed54 clang on linux prefers no args for rep movsl/stosl. ifdef for C that removes namespace. extern c allows c++ to be used to compile, including with namespace, but C program can link libyuv
BUG=none
TEST=none
Review URL: http://webrtc-codereview.appspot.com/320004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@101 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-12-10 07:45:58 +00:00
fbarchard@google.com
1c5136d069 use IS_ALIGNED for width and stride to avoid mod that generates 6 instructions
BUG=none
TEST=disassemble to confirm smaller/simplier alignment checks
Review URL: http://webrtc-codereview.appspot.com/287001

git-svn-id: http://libyuv.googlecode.com/svn/trunk@91 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-11-22 18:15:17 +00:00
fbarchard@google.com
12d048335d I420Mirror rewrite, I420Copy movdqa, I444To420, I420To422
Review URL: http://webrtc-codereview.appspot.com/267025

git-svn-id: http://libyuv.googlecode.com/svn/trunk@89 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-11-21 23:54:38 +00:00
frkoenig@google.com
93d003f874 YUVToARGB, YUVToBGRA,YUVToABGR optimized.
Review URL: http://webrtc-codereview.appspot.com/267022

git-svn-id: http://libyuv.googlecode.com/svn/trunk@86 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-11-19 01:39:57 +00:00
fbarchard@google.com
1c2d8be1e1 port yuv to rgb to mac
BUG=none
TEST=none
Review URL: http://webrtc-codereview.appspot.com/269017

git-svn-id: http://libyuv.googlecode.com/svn/trunk@83 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-11-17 21:57:54 +00:00