1374 Commits

Author SHA1 Message Date
Frank Barchard
68e8d9bebd Math functions need BPP of 4 for odd width support on first source argument
BUG=455
TESTED=ARGBMultply
R=harryjin@google.com

Review URL: https://webrtc-codereview.appspot.com/54719004.
2015-06-16 09:34:51 -07:00
Frank Barchard
b071a3d321 subsample yuy2 dest
BUG=455
TESTED=out\release\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter=*ARGBToYUY2*
R=harryjin@google.com

Review URL: https://webrtc-codereview.appspot.com/58429004.
2015-06-15 12:01:28 -07:00
Frank Barchard
58ca9f899e remainder done unconditionally and with a variable
BUG=448
TESTED=local build
R=harryjin@google.com

Review URL: https://webrtc-codereview.appspot.com/57559004.
2015-06-12 17:21:41 -07:00
Frank Barchard
242cb2554c nv12 odd width support using SIMD for remainder
BUG=libyuv:448
TESTED=NV21ToRGB565_Any etc
R=harryjin@google.com

Review URL: https://webrtc-codereview.appspot.com/53689004.
2015-06-12 16:07:20 -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
Frank Barchard
ee351bc2d5 check height is non-zero
BUG=none
TESTED=libyuv unittest with even width
R=bcornell@google.com

Review URL: https://webrtc-codereview.appspot.com/51219004.
2015-06-11 16:35:20 -07:00
Frank Barchard
4389070d34 ignore pyc
BUG=none
TESTED=untested
R=harryjin@google.com

Review URL: https://webrtc-codereview.appspot.com/54709004.
2015-06-11 15:33:53 -07:00
Nodir Turakulov
0c31649f46 DEPS: trunk -> libyuv
Replace 'trunk' root dir in DEPS with libyuv.

R=fbarchard@google.com, fbarchard@chromium.org, kjellander@chromium.org
BUG=libyuv:452

Review URL: https://webrtc-codereview.appspot.com/52109004.
2015-06-09 21:15:08 -07:00
Frank Barchard
ce960d5f6a add scale_any to linux.mk make file.
BUG=453
TESTED=untested
R=harryjin@google.com

Review URL: https://webrtc-codereview.appspot.com/50239004.
2015-06-09 17:15:12 -07:00
fbarchard@google.com
2e9f3e5cf5 rename source files from row_posix.cc etc to row_gcc.cc to avoid gyp build filtering out source files from build when on windows with clang. The source code contained in row_gcc.cc is gcc syntax inline assembly available for any platform that supports gcc or clang for intel cpus.
BUG=440
TESTED=try bots
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1430 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-06-09 17:27:52 +00:00
fbarchard@google.com
d880a90eca make randomize take 64 bit count to allow larger images to be tested
BUG=none
TESTED=untested

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1429 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-06-09 01:55:01 +00:00
fbarchard@google.com
05416e2d9a Box filter for YUV use rows with accumulation buffer for better memory behavior. The old code would do columns accumulated into registers, and then store the result once. This was slow from a memory point of view. The new code does a row of source at a time, updating an accumulation buffer every row. The accumulation buffer is small, and should fit cache. Before each accumulation of N rows, the buffer needs to be reset to zero. If the memset is a bottleneck, it would be faster to do the first row without an add, storing to the accumulation buffer, and then add for the remaining rows.
BUG=425
TESTED=out\release\libyuv_unittest --gtest_filter=*ScaleTo1x1*
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1428 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-06-09 01:05:18 +00:00
fbarchard@google.com
b07de879b6 enable intrinsics for clangcl if -mssse3 is enabled.
BUG=451
TESTED=untested
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1427 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-06-08 22:48:18 +00:00
fbarchard@google.com
965ef277e1 bump deps to head chromium to get prebuilt clangcl
BUG=none
TESTED=untested
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1426 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-06-08 22:07:07 +00:00
fbarchard@google.com
b3d3db1b33 align clangcl using declspec instead of gcc style vector
BUG=451
TESTED=clang=1 build on windows
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1425 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-06-08 21:37:37 +00:00
johannkoenig@google.com
da6ee35e0c Revert "libyuv: Include foo_posix.cc in the gn build, like it's done in the gyp build."
BUG=496928
R=thakis@chromium.org

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1424 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-06-05 23:55:57 +00:00
johannkoenig@google.com
d7242b5b6c libyuv: Include foo_posix.cc in the gn build, like it's done in the gyp build.
This is required to get things linking in clang/win. Medium-term, we should
clean libyuv up to not require _posix files on non-posix.

Reviewed at https://webrtc-codereview.appspot.com/52069004/

BUG=496928

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1423 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-06-05 20:20:29 +00:00
fbarchard@google.com
684c09cd44 roll chromium revision to head in attempt to resolve build time performance hit due to external compilers on windows.
BUG=none
TESTED=untested
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1422 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-06-04 22:27:22 +00:00
fbarchard@google.com
a09fd1aa0f scale tests use int64 for size
BUG=none
TESTED=untested
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1421 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-06-04 21:34:16 +00:00
fbarchard@google.com
01ca0712c7 Test rotation with negative height
BUG=446
TESTED=libyuvTest.NV12Rotate180_Inverted
R=bcornell@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1420 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-06-02 22:42:45 +00: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
00c0141f30 Add scale color test place holder source
BUG=401
TESTED=untested

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1418 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-06-01 23:27:07 +00:00
fbarchard@google.com
e5fbad8f39 Add test for scaling color accuracy
BUG=401
TESTED=scale_color test

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1417 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-06-01 22:57:58 +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
80be2468b0 add test for box filter before improving odd width.
BUG=431
TESTED=ARGBScaleDownBy4_Box

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1411 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-22 23:32:20 +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
632c50f29c include posix source for 64 bit clang builds.
BUG=440
TESTED=ninja -C out\Release_x64
R=bcornell@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1407 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-14 21:40:05 +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
1be66a7970 psnr tool, work around for ios 64 bit compiler where int passed into assembly needs to be explicitely cast to 'w' register.
BUG=437
TESTED=untested
R=bcornell@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1403 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-05 23:40:03 +00:00
fbarchard@google.com
d3f51b58f0 work arounds for ios 64 bit compiler where int passed into assembly needs to be explicitely cast to 'w' register.
BUG=437
TESTED=local ios build
R=bcornell@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1402 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-05 22:46: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
a20e2c6213 row_neon64 fix for warning on ios where int width doesnt match %2 size which is 64 bit by default. change size to explicitely 32 bit with %w2.
BUG=437
TESTED=try bots
R=bcornell@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1399 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-04 22:53:53 +00:00
fbarchard@google.com
6d5554661f scale 64 bit fix for warning on ios where int width doesnt match %2 size which is 64 bit by default. change size to explicitely 32 bit with %w2.
BUG=437
TESTED=try bots
R=bcornell@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1398 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-04 22:03:53 +00:00
fbarchard@google.com
e8c90c31ee fix for warning on ios 64 bit that int width doesnt match %2 size which is 64 bit by default. change size to explicitely 32 bit with %w2.
BUG=437
TESTED=try bots
R=bcornell@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1397 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-04 21:16:03 +00:00
fbarchard@google.com
54e78d12e0 make windows code built with clangcl include the _posix source code.
depot_tools excludes these source files now, so they need to be manually
included.
BUG=435
TESTED=clangcl local build on windows
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1396 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-02 01:00:01 +00:00
fbarchard@google.com
2c44965e8d make row_win windows code built with clangcl include the _posix source code.
depot_tools excludes these source files now, so they need to be manually
included.
BUG=435
TESTED=clangcl local build on windows
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1395 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-02 00:39:29 +00:00
fbarchard@google.com
484e5d2d23 make windows code built with clangcl include the _posix source code. depot_tools excludes these source files now, so they need to be manually included.
BUG=435
TESTED=clangcl local build on windows
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1394 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-02 00:15:05 +00:00
fbarchard@google.com
1ec12e5d6d Roll chromium deps to version that includes vs2015 link error fix.
BUG=434
TESTED=gclient sync and do build with vs2015
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1393 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-30 23:37:32 +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
31806d76d9 scale to 3/4 bug fix for odd widths. multiply to index into source by scale factor should be 4 / 3 not 3 / 4.
BUG=433
TESTED=set LIBYUV_WIDTH=1276 out\release\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter=*.Scale*
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1391 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-30 17:18:13 +00:00
fbarchard@google.com
9f4636e298 AVX2 port of ScaleDownBy4.
BUG=314
TESTED=out\release\libyuv_unittest --gtest_filter=*.ScaleDownBy4*

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1390 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-30 01:58:32 +00:00
fbarchard@google.com
5abb6d4556 disable stucture padded warnings on win64 builds.
BUG=432
TESTED=local win64 build
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1389 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-28 23:18:07 +00:00
fbarchard@google.com
e23274cad2 remove unused function SumBox.
BUG=432
TESTED=untested
R=bcornell@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1388 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-28 22:13:44 +00:00