Frank Barchard
3d190ee9f1
break rotate into files by cpu in preparation for optimization.
...
R=bcornell@google.com
BUG=libyuv:464
Review URL: https://webrtc-codereview.appspot.com/51289004 .
2015-07-14 10:23:10 -07:00
Frank Barchard
97b35daf75
disable faulty avx2 in argb conversions and box filter. and extend temporary buffer to 128 for an avx2 any function.
...
R=harryjin@google.com
BUG=libyuv:462
TESTED=libyuv_unittest run on haswell laptop
Review URL: https://webrtc-codereview.appspot.com/53759004 .
2015-07-07 15:40:24 -07:00
Frank Barchard
9487b9d6d8
any allow for avx2 32 pixels at a time of argb
...
R=harryjin@google.com
BUG=libyuv:461
Review URL: https://webrtc-codereview.appspot.com/54779004 .
2015-07-01 17:50:48 -07:00
Frank Barchard
cff11a17d6
remove tools from git that were previously checkin by accident.
...
R=harryjin@google.com , brucedawson@chromium.org
BUG=none
TESTED=untested
Review URL: https://webrtc-codereview.appspot.com/56619004 .
2015-06-30 10:45:24 -07:00
Frank Barchard
82180e8296
rgb24toyuv use 1 or 2 steps consistently.
...
R=bcornell@google.com , impjdi@google.com
BUG=libyuv:459
Review URL: https://webrtc-codereview.appspot.com/52149004 .
2015-06-29 16:51:05 -07:00
Frank Barchard
0686f26938
blend remove alignment 1 pixel loop for less overhead.
...
R=tpsiaki@google.com
BUG=none
TESTED=libyuvTest.ARGBBlend_Opt
Review URL: https://webrtc-codereview.appspot.com/50289005 .
2015-06-24 11:34:12 -07:00
Frank Barchard
553c7f85f1
mirror odd width with simd
...
R=harryjin@google.com
BUG=libyuv:448
Review URL: https://webrtc-codereview.appspot.com/54769004 .
2015-06-23 17:53:02 -07:00
Frank Barchard
6a9ef1ea36
any 1 to 2 with stride use SIMD
...
R=harryjin@google.com
BUG=libyuv:448
Review URL: https://webrtc-codereview.appspot.com/54759004 .
2015-06-23 17:08:08 -07:00
Frank Barchard
6dde4f14bd
argb to uv read 4 not 8
...
R=harryjin@google.com
BUG=libyuv:457
Review URL: https://webrtc-codereview.appspot.com/52139004 .
2015-06-23 14:48:37 -07:00
Frank Barchard
54100b91c1
copy 2 rows for interpolate and use SIMD.
...
R=harryjin@google.com
BUG=libyuv:448
Review URL: https://webrtc-codereview.appspot.com/50279004 .
2015-06-23 10:41:46 -07:00
Frank Barchard
3b5d726a4f
1 to 1 any functions with a parameter use memcpy.
...
R=harryjin@google.com
BUG=libyuv:448
Review URL: https://webrtc-codereview.appspot.com/57619004 .
2015-06-22 15:08:20 -07:00
Frank Barchard
a0fca88b1d
remove fmemcpy and bump version
...
R=harryjin@google.com
BUG=libyuv:448
Review URL: https://webrtc-codereview.appspot.com/50269004 .
2015-06-19 17:58:17 -07:00
Frank Barchard
cae07fb0e0
bump subsampling up
...
BUG=455
TESTED=libyuvTest.ARGBToYUY2_Random
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/58419004 .
2015-06-12 15:25:03 -07:00
Frank Barchard
03da5420bc
use SIMD for I420ToARGB odd widths in a temporary buffer instead of using C for remainder.
...
Enter a description of the change.
use SIMD for I420ToARGB odd widths in a temporary buffer instead of using C for remainder. Currently the C code does not exactly match the SIMD code, so an odd width produces different pixels than an even width, causing a subtle artifact. By using SIMD consistently, there is no difference in even and odd widths. Also the SIMD performance is faster, so even with overhead of memcpy, performance improves.
BUG=447
TESTED=out\release\libyuv_unittest.exe --gtest_filter=*I420ToARGB*
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/55579004 .
2015-06-11 16:38:52 -07:00
fbarchard@google.com
d3d8e0d933
make source for planar tests contiguous to test planar functions coalesce into a single low level call.
...
BUG=431
TESTED=SetPlane unittest
R=bcornell@google.com
Review URL: https://webrtc-codereview.appspot.com/51999004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1419 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-06-01 23:28:59 +00:00
fbarchard@google.com
e787144c2d
adjust dimensions for scale factor tests to ensure the scale factor tested is actually used.
...
BUG=none
TESTED=set LIBYUV_WIDTH=1918 libyuvTest.ScaleDownBy3by4_None
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/47349004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1416 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-30 00:45:08 +00:00
fbarchard@google.com
bd2d903e1b
odd width support for ARGBSobel functions. Improves performance for images that are not a multiple of 8 pixels.
...
BUG=444
TESTED=libyuvTest.ARGBSobel_Opt
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/54589004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1415 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-28 22:22:28 +00:00
fbarchard@google.com
cfce47efc8
Change Sobel to use JPeg Luma calculation instead of extracting G channel. Using luma produces a better sobel that respects all 3 channels of RGB. Historically the G channel was used to improve performance, and because the luma of I420 is a constrained range, hurting quality. Using the JPeg variation of YUV, the luma is more accurate, including cross platform, better optimized for AVX2 and odd widths, and full range.
...
BUG=444
TESTED=ARGBSobelXY_Opt
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/57479004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1414 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-27 22:32:26 +00:00
fbarchard@google.com
535a7140f2
Scale Down by factor tests scale down to specified ratio rather than up. This ensures the alignment constrains on the destination dont cause a different factor to be used.
...
BUG=431
TESTED=libyuvTest.ScaleDownBy3_Bilinear
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/47309004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1413 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-26 23:22:01 +00:00
fbarchard@google.com
7c09264ffc
odd width support for scale by even scale factor and box scale down by 4. scale down by 4 uses scale down by 2 internally.
...
BUG=431
TESTED=libyuvTest.ARGBScaleDownBy4_Bilinear
Review URL: https://webrtc-codereview.appspot.com/57399004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1412 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-26 17:56:51 +00:00
fbarchard@google.com
c38aeec322
scale down by 2 on argb images support odd widths using _any function.
...
BUG=431
TESTED=libyuvTest.ARGBScaleDownBy2_Bilinear
Review URL: https://webrtc-codereview.appspot.com/52569004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1410 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-22 21:39:21 +00:00
fbarchard@google.com
3666015261
add nacl macros for arm to YUV422TORGB_SETUP_REG.
...
BUG=415
TESTED=ncval.exe newlib/Release/nacltest_arm.nexe
R=bcornell@google.com
Review URL: https://webrtc-codereview.appspot.com/46229005
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1406 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-12 21:33:32 +00:00
fbarchard@google.com
7be3bc65a1
enable speed optimization for libyuv
...
BUG=439
TESTED=out\release\libyuv_unittest --gtest_filter=*I420ToARGB_Opt
R=bcornell@google.com
Review URL: https://webrtc-codereview.appspot.com/55389004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1405 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-11 21:58:42 +00:00
fbarchard@google.com
b33dc47b54
sobel use LL for constants to be passed in as int64
...
BUG=437
TESTED=local ios build
Review URL: https://webrtc-codereview.appspot.com/47129004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1404 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-06 02:34:16 +00:00
fbarchard@google.com
b0f8352245
row_neon64 additional fixes for warning on ios where int doesnt match %2 size which is 64 bit by default. change size to explicitely 32 bit with %w2.
...
BUG=437
TESTED=try bots
Review URL: https://webrtc-codereview.appspot.com/43349004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1401 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-05 17:26:57 +00:00
fbarchard@google.com
ab6b224675
fix for arm builds where tmp for assembly produces an error if its uninitialized.
...
BUG=libyuv:432
TESTED=try bots
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/49249004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1392 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-30 18:21:19 +00:00
fbarchard@google.com
f995021f35
Work around casting warnings in scale_neon64.cc for ios 64 bit.
...
BUG=430
TESTED=untested
R=bcornell@google.com
Review URL: https://webrtc-codereview.appspot.com/49799004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1382 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-28 00:02:46 +00:00
fbarchard@google.com
4e78b8dc2e
scale to 3/4 or 3/8 with odd width destinations efficiently. previously if width was not multiple of what the simd loop would do (24), scaling would fall back on slower C code. This change allows SIMD to be used for most of the scaling and C for the remainder, improving efficiency.
...
BUG=314
TESTED=set LIBYUV_WIDTH=1896 & ScaleDownBy3by4_*
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/48249004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1380 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-27 21:56:08 +00:00
fbarchard@google.com
c8a2c236a0
NaCl/GYP: remove references to prep_toolchain from libyuv. prep_toolchain is now a no-op.
...
BUG=none
TESTED=untested
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/49769004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1378 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-22 17:42:21 +00:00
fbarchard@google.com
2b7f6b7dee
ScaleAddRows_Any_SSE2 functions for handling odd widths.
...
BUG=425
TESTED=out\release\libyuv_unittest_old --gtest_filter=*.ScaleDownBy3_*
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/45219004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1377 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-22 00:51:56 +00:00
fbarchard@google.com
01db3d1d1d
Remove declspec(align(32)) from AVX2 functions.
...
BUG=422
TESTED=untested
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/43229004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1374 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-20 22:57:04 +00:00
fbarchard@google.com
812f59ed40
box and point sampling use scaledownby4 but linear and bilinear do not.
...
BUG=427
TESTED=out\release\libyuv_unittest --gtest_filter=*.ScaleDownBy4_*
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/51689004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1373 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-17 18:04:09 +00:00
fbarchard@google.com
c9986313ac
lsl by 2 requires a number sign for xcode on ios 64 bit build. add the # sign for ios compatibility. remove legacy x86 asm files that are unused. the unused files cause complications in build systems that build all files.
...
BUG=libyuv:423
TESTED=try bots
R=noahric@google.com
Review URL: https://webrtc-codereview.appspot.com/45119004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1369 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-14 19:57:33 +00:00
fbarchard@google.com
32ad6e0e12
Remove unused variable 'I422ToRGB565Row' that breaks osx builds.
...
BUG=426
TESTED=untested
Review URL: https://webrtc-codereview.appspot.com/48079004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1368 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-14 02:50:35 +00:00
fbarchard@google.com
b5ea79d845
add rows handle height of 1 using a more general while-style loop.
...
BUG=none
TESTED=try bots
Review URL: https://webrtc-codereview.appspot.com/45999004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1366 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-13 18:56:08 +00:00
fbarchard@google.com
c7161d1c36
Remove code alignment declspec from Visual C versions for vs2014 compatibility.
...
BUG=422
TESTED=local vs2013 build still passes.
Review URL: https://webrtc-codereview.appspot.com/45959004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1365 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-12 23:54:26 +00:00
fbarchard@google.com
1eb51bcf01
Fix bug in YUV to RGB for gcc/clang and enable affected functions.
...
BUG=393
TESTED=sde -ast -hsw -- out\release\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter=*I422ToARGB*
Review URL: https://webrtc-codereview.appspot.com/48019004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1364 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-08 02:32:33 +00:00
fbarchard@google.com
bb5a009d11
ARGB4444ToARGB and ARGB1555ToARGB ported to AVX2.
...
BUG=421
TESTED=out\release\libyuv_unittest --gtest_filter=*ARGB4444ToARGB*
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/48009004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1363 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-07 23:52:57 +00:00
fbarchard@google.com
8b9f908134
RGB565ToARGB AVX2 vzeroupper before the ret, not after.
...
BUG=421
TESTED=out\release\libyuv_unittest --gtest_filter=*RGB565ToARGB*
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/51549004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1362 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-07 22:53:12 +00:00
fbarchard@google.com
2827277496
port RGB565ToARGB to AVX2.
...
BUG=421
TESTED=out\release\libyuv_unittest --gtest_filter=*RGB565ToARGB*
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/49609004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1357 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-06 19:24:23 +00:00
fbarchard@google.com
e2ea106068
shift for arm wants a # sign for nacl and ios.
...
BUG=420
TESTED=d:/src/nacl_sdk/pepper_canary/toolchain/win_arm_newlib/bin/arm-nacl-g++ -o newlib/Release/source/scale_neon_arm.o -c source/scale_neon.cc -g -O2 -pthread -MMD -DNDEBUG -Id:/src/nacl_sdk/pepper_canary/include -Id:/src/nacl_sdk/pepper_canary/include/newlib -I./include
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/47949004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1356 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-03 23:28:44 +00:00
fbarchard@google.com
62a9fe303c
code style cleanup of scale functions. no functional change.
...
BUG=none
TESTED=lint
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/48839004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1354 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-02 21:23:52 +00:00
fbarchard@google.com
c70c7c02ff
scale to half size optimization for avx2 - use pmaddubsw instruction to horizontally add bytes, then pavgw to round and divide by 2.
...
BUG=314
TESTED=libyuvTest.ScaleDownBy2*
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/45909004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1352 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-31 23:59:27 +00:00
fbarchard@google.com
72673ac873
linear and point sample scale to half size for AVX2.
...
BUG=314
TESTED=out\release\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter=*.ScaleDownBy2*
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/44959004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1349 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-30 21:46:08 +00:00
fbarchard@google.com
9ef8999ff3
scale to half size use pmadd/pavgw to horizontal averaging.
...
BUG=314
TESTED=out\release\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter=*.ScaleDownBy2*
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/50529004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1348 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-27 18:20:21 +00:00
fbarchard@google.com
e6ca9cc2a2
Scale down by 2 AVX2 port. Processes twice as many pixels as SSE2 and takes advantage of 3 argument instructions to reduce register usage and number of instructions.
...
BUG=314
TESTED=libyuvTest.ScaleDownBy2_Box
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/42959004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1347 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-26 23:21:08 +00:00
fbarchard@google.com
f16f33d4ce
All cpu flags to be set so that instead of comparing C code, compare assembler to assembler, for benchmarking purposes.
...
BUG=none
TESTED=libyuv_unittest.exe
R=bcornell@google.com
Review URL: https://webrtc-codereview.appspot.com/50499004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1346 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-26 18:22:29 +00:00
fbarchard@google.com
d28cd77f99
Enable assembly for clangcl build on Windows. Previously assembly was disabled so clangcl would work, but only with C code. As clangcl mimics both Visual C and GCC, ifdefs need to pick one or the other or often you'll end up with both. In this CL we disable most Visual C code and use the GCC versions which allow assembly for both 32 and 64 bit intel.
...
BUG=412
TESTED=clang=1 build on windows
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/51389004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1341 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-19 20:36:31 +00:00
fbarchard@google.com
0e4388aea3
I422ToRGB24 AVX2 and I422ToRAW
...
BUG=none
TESTED=I422ToRGB24 unittest
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/46619004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1337 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-17 17:25:27 +00:00
fbarchard@google.com
3b4f5eb7b8
Port J422 colorspace to GCC
...
BUG=414
TESTED=try bots
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/43809004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1334 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-17 00:54:50 +00:00