437 Commits

Author SHA1 Message Date
Frank Barchard
00f15e3c6c color unittest allow j420 error of 5 for arm
R=harryjin@google.com
BUG=libyuv:511

Review URL: https://codereview.chromium.org/1412683005 .
2015-10-22 11:25:04 -07:00
Frank Barchard
5bf4de0806 width and 3 bug fix in odd width support of ARGBToI411
TBR=harryjin@google.com
BUG=none

Review URL: https://codereview.chromium.org/1415213002 .
2015-10-21 12:45:08 -07:00
Frank Barchard
e6a54f223a Call AllowCommandLineReparsing in unit tests
Allows us to ignore flags passed on to us by Chromium build bots
without having to explicitly disable them. (Thanks pbos!)

TESTED=webrtc ran modules_unittests with a bogus flag did not result in an
error.

R=kjellander@chromium.org
BUG=libyuv:507

Review URL: https://codereview.chromium.org/1417573002 .
2015-10-19 16:30:41 -07:00
Frank Barchard
94312b695a add gflags support files from webrtc
files needed for command line support with gtest.
These files are copied directly from webrtc.

TBR=kjellander@chromium.org
BUG=libyuv:507

Review URL: https://codereview.chromium.org/1414483002 .
2015-10-16 18:53:25 -07:00
Frank Barchard
5d0a871d37 remove have jpeg test
This test is just a printf, not a real test, but somehow
fails on arm.

TBR=harryjin@google.com
BUG=libyuv:506

Review URL: https://codereview.chromium.org/1409913002 .
2015-10-15 19:13:07 -07:00
Frank Barchard
d5c2a11529 disable color test that hangs on C version for Arm.
TBR=harryjin@google.com
BUG=libyuv:506

Review URL: https://codereview.chromium.org/1403183002 .
2015-10-14 18:48:56 -07:00
Frank Barchard
e2417df4cb create color test category of unittests to narrow down arm bug
A hang in color conversion on arm occurs somewhere in yuv to rgb.
Breaking the color test into its own category of test will help
run selective tests to narrow down the issue.

R=harryjin@google.com
BUG=libyuv:506

Review URL: https://codereview.chromium.org/1405543003 .
2015-10-14 16:58:55 -07:00
Frank Barchard
156ad8ee27 disable scale color tests.
These tests are place holders, but cause a hang on arm.
Disable them for now.

TBR=harryjin@google.com
BUG=libyuv:506

Review URL: https://codereview.chromium.org/1407693003 .
2015-10-14 15:26:28 -07:00
Frank Barchard
26db4de2ae break up unittests into categories
R=harryjin@google.com
BUG=none

Review URL: https://codereview.chromium.org/1399523004 .
2015-10-13 16:01:07 -07:00
Frank Barchard
914a9856c7 Reimplement NV21ToARGB to allow different color matrix.
Low level for NV21ToARGB written to accept yuv matrix used by
other YUV to ARGB functions.
Previously NV21 was implemented for Windows using NV12 with a different
matrix that swapped U and V.  But the Arm version of the low level does
not allow the matrix U and V contributions to be swapped.
Using a new low level function that reads NV21 and uses the same
yuvconstants as other YUV conversion functions allows an Arm port of
this function.

TBR=harryjin@google.com
BUG=libyuv:500

Review URL: https://codereview.chromium.org/1388273002 .
2015-10-06 20:34:44 -07:00
Frank Barchard
f00bc9ef46 Add J444ToARGB conversion function.
J444 is JPeg YUV color space with 444 subsampling.
This implementation uses the existing I444ToARGB conversion, which is
BT.601 color space with 444 subsampling, but passing in the jpeg
color matrix constants.

TBR=harryjin@google.com
BUG=449

Review URL: https://codereview.chromium.org/1387313002 .
2015-10-06 18:46:53 -07:00
Frank Barchard
f4c1ac10f0 Speed up rounding to byte test
R=harryjin@google.com
BUG=libyuv:492

Review URL: https://codereview.chromium.org/1367403007 .
2015-10-02 15:27:13 -07:00
Frank Barchard
e365cdde3b I420Alpha row function in 1 pass.
API change - I420AlphaToARGB takes flag indicating if RGB should be
premultiplied by alpha.

This version implements an efficient SSSE3 version for Windows.
C version done in 2 steps.

Was
libyuvTest.I420AlphaToARGB_Any (1136 ms)
libyuvTest.I420AlphaToARGB_Unaligned (1210 ms)
libyuvTest.I420AlphaToARGB_Invert (966 ms)
libyuvTest.I420AlphaToARGB_Opt (1031 ms)
libyuvTest.I420AlphaToABGR_Any (1020 ms)
libyuvTest.I420AlphaToABGR_Unaligned (1359 ms)
libyuvTest.I420AlphaToABGR_Invert (1082 ms)
libyuvTest.I420AlphaToABGR_Opt (986 ms)

R=harryjin@google.com
BUG=libyuv:496

Review URL: https://codereview.chromium.org/1367093002 .
2015-09-25 10:29:20 -07:00
Frank Barchard
16f12b58cc Replace random with fastrand
random / rand is slow and impacts performance testing.
Although its only called to clear a frame once, a typical profile shows
it high in the overall profile, when doing 1000 frames for a benchmark.

95.10%  libyuv_unittest  libyuv_unittest      [.] YUY2ToARGBRow_SSSE3
 2.01%  libyuv_unittest  libc-2.19.so         [.] __random_r
 1.13%  libyuv_unittest  libc-2.19.so         [.] __random

Replace random is a faster version for unittests.

set LIBYUV_WIDTH=1280
set LIBYUV_HEIGHT=720
set LIBYUV_REPEAT=999
set LIBYUV_FLAGS=-1
out\release\libyuv_unittest --gtest_filter=*YUY2ToARGB*  | findms

Was
libyuvTest.YUY2ToARGB_Opt (497 ms)

Now
libyuvTest.YUY2ToARGB_Opt (454 ms)

R=harryjin@google.com
BUG=none

Review URL: https://codereview.chromium.org/1361813002 .
2015-09-22 15:47:36 -07:00
Frank Barchard
28427a53e2 I444ToABGR for android
Reimplements I444ToARGB as a matrix function.
new I444ToABGR as matrix functions with wrappers and any functions.
Allows for future J444 and H444 versions.
I444ToABGR user level function added.

BUG=libyuv:490, libyuv:449
R=harryjin@google.com

Review URL: https://codereview.chromium.org/1355733002 .
2015-09-18 11:20:58 -07:00
Frank Barchard
ef09d53f61 Remove redundent rounding test from scale.
There is still a rounding test in color test.

TBR=harryjin@google.com
BUG=libyuv:492

Review URL: https://codereview.chromium.org/1347893003 .
2015-09-16 17:54:41 -07:00
Frank Barchard
ed55d24d9f H420 functionality
R=harryjin@google.com
BUG=libyuv:488

Review URL: https://webrtc-codereview.appspot.com/54869004 .
2015-09-06 11:01:40 -07:00
Frank Barchard
7060e0d826 I420ToABGRMatrix functions with J420ToABGR wrapper.
Allows direct conversion from JPeg to ABGR for android.

BUG=libyuv:488
R=harryjin@google.com

Review URL: https://webrtc-codereview.appspot.com/55719004 .
2015-09-03 10:42:36 -07:00
Frank Barchard
4dfdabb552 I420AlphaToABGR for android version of yuva conversion
Same as I420AlphaToARGB but first step converts to ABGR instead of ARGB.

TBR=harryjin@google.com
BUG=libyuv:473

Review URL: https://webrtc-codereview.appspot.com/52779004.
2015-08-20 19:36:59 -07:00
Frank Barchard
cda9d38a4e xmmword cast for clang
clangcl use compare_win for 32 bit, allowing fallback and enabling avx2 code for clang.
move defines/protos to compare_row.h
fix issue with odd width ARGBCopyAlpha functions by copying destination to temp buffer, then doing alpha copy, then copy back to destination.

R=harryjin@google.com
TBR=harryjin@google.com
BUG=libyuv:484

Review URL: https://webrtc-codereview.appspot.com/59379004.
2015-08-18 11:13:12 -07:00
Frank Barchard
8e7a62f22a I420AlphaToARGB conversion for planar YUV with Alpha to ARGB.
R=brucedawson@chromium.org, harryjin@google.com
BUG=libyuv:473

Review URL: https://webrtc-codereview.appspot.com/54829004.
2015-08-12 17:01:24 -07:00
Frank Barchard
478ff9608b Increase error tolerance to 4 for arm on J420 convert
BUG=libyuv:479
R=harryjin@google.com

Review URL: https://webrtc-codereview.appspot.com/53789004.
2015-08-07 12:24:25 -07:00
Frank Barchard
f242a4a1a1 ValidateJpeg check for valid pointer and size
R=harryjin@google.com
BUG=chromium:497297

Review URL: https://webrtc-codereview.appspot.com/57649004.
2015-07-30 15:49:48 -07:00
Frank Barchard
93464b926c Add rotate any support. Fix for sobel for neon which does 16 at a time, not 8. Disable scaling color test that fails on arm. Test is not complete.
R=harryjin@google.com
BUG=libyuv:479

Review URL: https://webrtc-codereview.appspot.com/52229004.
2015-07-28 15:06:20 -07:00
Frank Barchard
f5c71e52bb rowbytes fix for nv12 tests
R=harryjin@google.com
BUG=libyuv:466

Review URL: https://webrtc-codereview.appspot.com/50349004.
2015-07-21 10:48:10 -07:00
Frank Barchard
ce98129951 yuy2tonv12
R=bcornell@google.com
BUG=libyuv:466

Review URL: https://webrtc-codereview.appspot.com/51309004.
2015-07-17 16:22:59 -07:00
Frank Barchard
faa4b14f85 uyvy to nv12
R=harryjin@google.com
BUG=libyuv:466

Review URL: https://webrtc-codereview.appspot.com/50339004.
2015-07-17 14:43:19 -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
5edb101088 disable version which fails under git
R=harryjin@google.com, harryjin
BUG=none

Review URL: https://webrtc-codereview.appspot.com/52739004.
2015-06-16 10:02:41 -07: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
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
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
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
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
e52b9c3405 make box filter upsampler consider a pixel width of less than 1 to be 1. This makes it behave as a point sampler.
BUG=428
TESTED=set LIBYUV_WIDTH=1900 && out\release\libyuv_unittest.exe
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1372 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-16 21:02:16 +00:00
fbarchard@google.com
bb43f064df Add a scale down by 3 test for testing general purpose box/bilinear with scale factor of 3, but allowing width/height specified to do odd with testing.
BUG=libyuv:427
TESTED=libyuvTest.ScaleDownBy3*
R=bcornell@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1370 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-15 22:46:45 +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
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
4f46a3e03d remove 1 tab from each row of histograms in libyuvTest.TestFullYUV and libyuvTest.TestScaleFullYUV.
BUG=none
TESTED=libyuvTest.TestScaleFullYUV
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1345 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-25 22:38:01 +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
92f7f421fd rename I400 to J400 and I400 reference to I400. J400 is a simple replication of values to convert to RGB, which is what the old I400 was. I400 reference is the Y part of the YUV formula, so renaming that to I400.
BUG=none
TESTED=libyuvTest (5925 ms total)
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1333 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-17 00:01:18 +00:00
fbarchard@google.com
f301777060 Fix YToARGB and tweaks to thresholds in YUV tests.
BUG=411
TESTED=libyuvTest.TestYToARGB
R=bcornell@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1330 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-16 19:50:33 +00:00
fbarchard@google.com
bfba8e41c4 Add test for color accuracy of J422ToARGB
BUG=414
TESTED=libyuvTest.TestFullYUVJ
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1329 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-16 18:47:42 +00:00
fbarchard@google.com
63726ed9c6 test different ways to round and clamp
BUG=none
TESTED=TestRoundToByte
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1325 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-13 22:24:45 +00:00
fbarchard@google.com
8f152605c7 test for cast and clamp performance.
BUG=none
TESTED=libyuv unittest added to benchmark and confirm behavior of cast
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1323 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-12 18:49:32 +00:00
fbarchard@google.com
be77e062da Make TestFullYUV test do full yuv color space by default with randomized Y for inner loop
BUG=none
TESTED=out\release\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter=*TestFullYUV
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1319 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-10 21:26:46 +00:00
fbarchard@google.com
1d87532f00 Make color_test using if statements for clamping values from 0 to 255.
BUG=none
TESTED=libyuvTest.TestFullYUV

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1316 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-10 01:51:01 +00:00
fbarchard@google.com
24152b2435 Dither from I420 to RGB565 in 2 steps - I420ToARGB then ARGBToRGB565.
BUG=407
TESTED=untested
R=brucedawson@google.com, tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1315 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-10 01:45:04 +00:00
fbarchard@google.com
cdd80e04c9 Port I444ToARGB to AVX2.
BUG=403
TESTED=I444ToARGB unittests
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1314 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-09 21:56:48 +00:00
fbarchard@google.com
7c55ae4ada Change YUV full test to use pseudo random order
BUG=none
TESTED=libyuvTest.TestFullYUV

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1313 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-08 23:00:39 +00:00
fbarchard@google.com
9c96867a97 lrintf is not supported by visual studio 2010; replace instances of lrintf with a cast to int.
BUG=409
TESTED=python build\gyp_chromium -fninja -G msvs_version=2010 --depth=. libyuv_test.gyp
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1312 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-06 22:20:41 +00:00
fbarchard@google.com
bdeb9ac584 switch from 8x8 to 4x4 matrix for dithering
BUG=407
TESTED=Dither unittests
R=brucedawson@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1310 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-06 18:28:00 +00:00
fbarchard@google.com
0fe4abbc5c ARGBToRGB565 AVX2 with dithering
BUG=407
TESTED=ARGBToRGB565Dither unittest
R=brucedawson@google.com, harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1309 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-04 22:31:43 +00:00
fbarchard@google.com
933bd40c3c port ARGBToRGB565 and ARGB1555 to AVX2. Enable functions that use ARGBToRGB565 AVX2 code. Add ARGBToRGB565Dither function.
BUG=403
TESTED=local windows build
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1302 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-27 21:15:28 +00:00
yang.zhang@arm.com
94e3d5a3be Improve the accuracy YUV to RGB for ARMv7 NEON
NEON version of YUV422TORGB is updated based on C algorithm. Accuracy YUV to RGB
of NEON is also updated according to test result. Macro LIBYUV_NEON is added to
identify accuracy YUV to RGB for ARM platform.
Except TestJ420 and TestYUV, all the other tests are passed.

BUG=324
TESTED=libyuvTest on ARMv7 with Android
R=fbarchard@google.com

Change-Id: I492ca628679940534f40341721dc5b6dc2d7a5b6

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1296 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-25 06:51:29 +00:00
fbarchard@google.com
194f740d0e Scan from start of buffer to handle case where an invalid size was passed.
BUG=404
TESTED=libyuvTest.ValidateJpegLarge
R=brucedawson@google.com, harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1285 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-18 01:57:31 +00:00
fbarchard@google.com
a965a97d8e Unittest to test ValidateJpeg when jpeg is small but buffer is large
BUG=404
TESTED=libyuvTest.ValidateJpegLarge
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1284 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-17 19:16:14 +00:00
fbarchard@google.com
796396b226 Switch step for libyuvTest.TestFullYUV from 3 to 5 for better test performance.
BUG=397
TESTED=libyuvTest.TestFullYUV
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1281 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-13 21:48:29 +00:00
fbarchard@google.com
5ab38f9258 Remove Q420 fourcc support.
BUG=396
TESTED=local build of unittest builds and passes
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1278 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-11 18:20:54 +00:00
fbarchard@google.com
738dfa0307 Support odd widths for NV12 format when cropping vertically.
BUG=400
TESTED=CropNV12
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1272 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-10 02:18:38 +00:00
fbarchard@google.com
695f42fdb8 fix for odd width but even height in TestI420
BUG=400
TESTED=libyuv unittests pass locally with width of 11
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1271 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-09 21:40:27 +00:00
fbarchard@google.com
0887315390 Remove bayer format support from libyuv. This format is very rare and used on legacy hardware. Its not well optimized and has bugs related to odd widths. Removing the format will allow tests to pass under more circumstances, run faster and allow focus on higher priority quality and performance issues.
BUG=301
TESTED=local unittests build/pass on windows gyp build.
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1270 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-09 19:58:19 +00:00
fbarchard@google.com
6c200c5924 Test YUV against reference
BUG=393
TESTED=TestGreyYUV
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1265 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-05 23:58:01 +00:00
fbarchard@google.com
9d67669697 make histogram use 8 digits for all values for more consistent formatting.
BUG=394
TESTED=TestFullYUV
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1260 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-04 20:00:38 +00:00
fbarchard@google.com
c4e032c543 change Y multiplier and bias to compensate for 257/256 which makes YToARGB exactly match float math.
Histogram Before
hist            -3      -2      -1      0       1       2       3
red             0       0       1809408 13140736        1827072 0       0
green           0       0       1679912 13471329        1625975 0       0
blue            168448  994816  1876480 10655488        1893376 1006336 182272
Histogram After
hist            -3      -2      -1      0       1       2       3
red             0       0       558848  15632128        586240  0       0
green           0       0       209907  16350588        216721  0       0
blue            14848   642816  1989376 11363328        2053120 695040  18688
BUG=394
TESTED=more stringent luma tests
R=brucedawson@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1259 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-04 19:45:26 +00:00
fbarchard@google.com
3982998c7c YToARGB AVX2 port from SSE2
BUG=393
TESTED=YToARGB unittest
R=brucedawson@google.com, harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1258 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-03 01:35:11 +00:00
fbarchard@google.com
0494ffee81 use lrintf to round from float to int instead of round and then cast.
BUG=393
TESTED=local windows test passed.
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1257 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-02 21:06:51 +00:00
fbarchard@google.com
c61394789d Test for YToARGB to ensure ordering of values.
BUG=393
TESTED=TestYToARGB
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1256 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-02 18:51:29 +00:00
fbarchard@google.com
4e155ef6c4 Change test to test for Arm, since all CPUs except arm provide accurate yuv conversion
BUG=392
TESTED=try bots

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1254 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-27 00:22:10 +00:00
fbarchard@google.com
4848b06016 YPixel subtract bias to match C code
BUG=392
TESTED=TestGreyYUV
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1253 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-26 23:58:20 +00:00
fbarchard@google.com
f0845348fe Add a test for YToARGB to match exactly I420ToARGB
BUG=392
TESTED=TestGreyYUV
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1252 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-26 23:22:13 +00:00
fbarchard@google.com
48da8c2991 print min max error per channel
BUG=324
TESTED=TestFullYUV
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1244 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-22 18:27:29 +00:00
fbarchard@google.com
3e18ca4cdb make 'full' test do multiples of 3 which includes 0 and 255.
BUG=324
TESTED=libyuvTest.TestFullYUV
R=brucedawson@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1242 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-21 22:41:58 +00:00
fbarchard@google.com
7772ab1fb1 Remove integer prototype YUV conversion code from tests.
BUG=324
TESTED=local tests still build/pass.
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1241 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-21 20:08:25 +00:00
fbarchard@google.com
ada1b914ea when using high accuracy YUV have tighter tolerances.
BUG=324
TESTED=TestI420
R=brucedawson@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1240 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-21 19:48:21 +00:00
fbarchard@google.com
c6b52cb590 Allow C and ASM to be different for I420 for now.
BUG=324
TESTED=TestI420
R=brucedawson@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1239 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-21 19:24:01 +00:00
fbarchard@google.com
ddf114624a More accurate tests when running improved luma/chroma accuracy code.
BUG=324
TESTED=TestYUV
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1237 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-21 18:42:16 +00:00
fbarchard@google.com
3c834b6ce2 add an exhaustic yuv color space test, and relax yuv conversion results to allow for future change.
BUG=324
TESTED=TestFullYUV
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1234 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-20 23:48:21 +00:00
fbarchard@google.com
292c2286a6 prototype of a YUV to RGB function to achieve higher quality and performance at the same time. The chroma is made more accurate by using negative values that allow more range and then subtract the contributions from the luma contributes. The luma is made more accurate using a multiply that duplicates the Y bits out to 16 bits and then does a 2.14 bit fixed point coefficient. The replication is done for free as part of the multiply.
BUG=391
TESTED=TestYUV
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1232 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-20 18:21:16 +00:00
fbarchard@google.com
d586d55a53 Tests the full range of Y
BUG=391
TESTED=TestYUV
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1231 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-16 02:23:19 +00:00
fbarchard@google.com
131aef142a math header needed on osx version.
BUG=391
TESTED=try bots
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1230 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-15 21:53:52 +00:00
fbarchard@google.com
db81017f7b Test color space against a reference function.
BUG=none
TESTED=TestYUV
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1229 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-15 18:17:53 +00:00
fbarchard@google.com
a5a15198b4 Add J422 support which is 2x1 subsampling with jpeg color space.
BUG=391
TESTED=color_test
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1228 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-14 19:16:01 +00:00
fbarchard@google.com
e0a2472fb3 Move color space tests into its own source file.
BUG=391
TESTED=TestI420
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1227 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-13 23:47:25 +00:00
fbarchard@google.com
69df62234b Test J420 conversion to and from ARGB has low absolute difference.
BUG=none
TESTED=TestJ420
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1225 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-13 19:53:15 +00:00
fbarchard@google.com
cb96f37afa Convert to and from J420 to test absolute conversion error.
BUG=241
TESTED=TestJ420
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1224 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-13 18:58:17 +00:00
fbarchard@google.com
8e3db2dc73 Support invert for ARGBRect and SetPlane
BUG=387
TESTED=ARGBRect_Invert
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1219 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-07 19:02:01 +00:00
fbarchard@google.com
61ffd847d7 Add tests for ARGBRect and SetPlane. Remove comment to test Neon shuffle and Setrows for Neon.
BUG=387
TESTED=libyuvTest.ARGBRect_Opt and libyuvTest.SetPlane_Opt
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1217 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-06 22:27:35 +00:00
fbarchard@google.com
40e3457574 J420ToARGB jpeg variation of YUV color space to ARGB.
BUG=241
TESTED=J420ToARGB unittest
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1212 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-12-29 19:17:53 +00:00
fbarchard@google.com
d3bc010367 Use expect near to see exact values for differences.
BUG=269
TESTED=local unittest
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1204 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-12-15 22:48:32 +00:00
fbarchard@google.com
7866d8e082 Make unittest check every pixel and report the first failure.
BUG=269
TESTED=unittest passes on windows
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1203 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-12-15 19:51:50 +00:00
fbarchard@google.com
a6025e8b6b ARGBDetect do 2 pixels at a time for improved performance.
BUG=375
TESTED=libyuvTest.BenchmarkARGBDetect_Opt
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1155 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-11-05 23:23:17 +00:00
fbarchard@google.com
b661b3ee0d Detect Endian of ARGB image.
BUG=375
TESTED=libyuv builds, but no test app for it yet
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1154 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-11-05 18:46:06 +00:00
fbarchard@google.com
d10f80500f Improve cmake build. Add unittests to cmake build and automatically detect jpeg support. This change was originally generated to support the build of libyuv in naclports: https://chromium.googlesource.com/external/naclports/+/master/ports/libyuv/. Also add cmake artifacts to .gitignore file.
BUG=366
TESTED=build and run unittests with cmake
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1146 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-10-28 23:37:11 +00:00
fbarchard@google.com
9107460c7f Offset destination by 1 for I420ToARGB_Unaligned test to ensure destination alignment avoids exceptions.
BUG=372
TESTED=out\release_x64\libyuv_unittest --gtest_catch_exceptions=0 --gtest_filter=*I420ToARGB_Unaligned
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1125 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-10-17 01:18:02 +00:00
fbarchard@google.com
008ce53ac4 pavgb with memory op requires alignment. This CL disables conversions that use pavgb, and resolves scale by 3/8 unittest for checking alignment works. The 3/8 code used a pavgb with a memory operand. tests are added for scaling and allow unaligning on purpose.
BUG=365
TESTED=local change to force unaligned memory fails on some conversions and scaling code.
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1114 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-10-07 01:57:34 +00:00