977 Commits

Author SHA1 Message Date
fbarchard@google.com
f2fad0faa5 Optimized J422ToARGB.
BUG=414
TESTED=J422ToARGB unittest
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1328 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-16 18:08:30 +00:00
fbarchard@google.com
e408a3759f Improve accuracy of J422 color space using higher precission fixed point and bias.
BUG=414
TESTED=TestFullYUVJ
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1327 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-16 18:08:12 +00:00
yang.zhang@arm.com
ca5b1bd58b Add ScaleAddRows_NEON for ARM32/64
ARM32/64 NEON versions of ScaleAddRows_NEON are implemented.

BUG=319
TESTED=libyuvTest.Scale* on ARM32/64 with Android
R=fbarchard@google.com

Change-Id: I45b88c2b5f576042ba5b3d8d6f8851257fdb7218

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1326 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-16 02:57:46 +00:00
fbarchard@google.com
685b92b0a6 I400ToARGB_AVX2 port from SSE2 to AVX2.
BUG=403
TESTED=libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter=*I400ToARGB*
R=brucedawson@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1322 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-11 18:12:17 +00:00
fbarchard@google.com
f5a7b2b48a I411ToARGB AVX2 version
BUG=403
TESTED=I411ToARGB unittest
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1321 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-11 00:08:56 +00:00
fbarchard@google.com
1e4a14f410 scale avoid math overflow in fixed point for large images
BUG=410
TESTED=set LIBYUV_WIDTH=65536 out\release\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter=libyuvTest.ScaleTo320x240_None
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1320 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-10 22:30:47 +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
697c5aa831 disable nv12 avx2 for vs9/10 that dont support avx2 instructions.
BUG=409
TESTED=try bots
R=harryjin@google.com, johannkoenig@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1311 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-06 19:12:21 +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
9245317e16 ARGBToRGB565 SSE2 port.
BUG=407
TESTED=ARGBToRGB565Dither unittest
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1308 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-04 00:00:50 +00:00
yang.zhang@arm.com
274c9bce92 Add ScaleRowDown2Linear_NEON for ARM32/64
ARM32/64 NEON versions of ScaleRowDown2Linear_NEON are implemented.

BUG=319
TESTED=libyuvTest.ScaleDownBy2_Linear on ARM32/64 with Android
R=fbarchard@google.com

Change-Id: I2c7f43a0d56ed4dfded5bdbbb61765d87d65a2ba

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1307 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-03 02:17:16 +00:00
fbarchard@google.com
693e0217c8 ARGBToRGB565 C version use unsigned dither matrix pattern to bump pixels to next brighter value.
BUG=407
TESTED=unittest passes
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1306 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-02 23:46:09 +00:00
fbarchard@google.com
6eaee58589 shift by 16 for neon expects a number sign
BUG=408
TESTED=nacl arm build
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1305 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-02 18:48:17 +00:00
yang.zhang@arm.com
e4cf8950d8 Improve the accuracy YUV to RGB for ARM64 NEON
ARM64 NEON version of YUV422TORGB is updated based on C algorithm.
Except TestJ420 and TestYUV, all the other tests are passed.

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

Change-Id: Ia2663cfdeccc4c8c1d46262c9c0cc67b71d45e70

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1304 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-02 08:30:22 +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
fbarchard@google.com
bffd326f74 AVX2 version of ARGBToARGB4444
BUG=403
TESTED=local build on windows
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1297 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-25 17:26: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
d96047761e AVX2 version of NV12ToARGB
BUG=403
TESTED=untested
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1295 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-24 23:45:08 +00:00
fbarchard@google.com
3c11d4bf6e align avx2 buffers to 32 bytes
BUG=403
TESTED=untested
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1294 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-24 23:31:28 +00:00
fbarchard@google.com
446fa95587 I422ToRGB565, ARGB4444 and ARGB1555 for AVX2
BUG=403
TESTED=avx2 emulator

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1293 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-24 23:14:46 +00:00
fbarchard@google.com
e2f1a75474 move mask to last parameter of any functions for consistency.
BUG=none
TESTED=local libyuv unittest passes
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1292 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-24 21:18:30 +00:00
fbarchard@google.com
239962fa00 YUY2 and UYVY to ARGB AVX2 versions via wrappers.
BUG=403
TESTED=UNTESTED
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1291 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-24 18:58:51 +00:00
kjellander@google.com
28d1a582ba Revert "YUY2ToARGB and UYVYToARGB AVX with C wrapper to call lower level conversions."
This reverts r1288 due to breaking compilation on bots:
http://build.chromium.org/p/client.libyuv/builders/Mac64%20Debug/builds/365
http://build.chromium.org/p/client.libyuv/builders/Linux64%20Debug/builds/667

TBR=fbarchard@google.com
TESTED=Reverted locally and all built fine again.

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1289 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-23 09:22:22 +00:00
fbarchard@google.com
b52606c024 YUY2ToARGB and UYVYToARGB AVX with C wrapper to call lower level conversions.
BUG=403
TESTED=convert unittest
R=brucedawson@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1288 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-21 00:49:35 +00:00
fbarchard@google.com
cfd6f897c4 use named type for pointer
BUG=403
TESTED=try bot

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1287 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-20 23:26:27 +00:00
fbarchard@google.com
6a192487fe Switch SSSE3 row wrappers from variable sized malloc to fixed size array with loop to process a portion of the row at a time. This helps performance in the case where the image has been coalesced into a single large row and the allocator, although only called once, is slow to clear the pages. Also the smaller temporary buffer fits cache, further improving performance.
BUG=403
TESTED=YUY2ToARGB unittest
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1286 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-20 22:46:15 +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
975dd5a699 macros for storing RGB on windows.
BUG=403
TESTED=local windows build
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1283 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-14 00:50:48 +00:00
fbarchard@google.com
8e16c1a341 Switch to macro for STOREBGRA etc on Posix SSSE3
BUG=393
TESTED=try bots
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1282 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-13 21:53:16 +00:00
fbarchard@google.com
2f56d2859f Macro to store ARGB value
BUG=396
TESTED=local windows build
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1279 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-11 18:53:54 +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
d1ac8b17e6 use matrix for win64 version of I420ToARGB
BUG=396
TESTED=local unittests build/pass
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1276 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-11 00:57:46 +00:00
fbarchard@google.com
3bb829a44f Add a macro for YUV to RGB on Windows. Allows multiple color matrix structures in the future.
BUG=393
TESTED=local build
R=brucedawson@google.com, harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1275 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-10 23:03:37 +00:00
fbarchard@google.com
97a3850ea4 Add a macro to reference YUV structure for future alternative color spaces.
BUG=393
TESTED=try bots
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1274 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-10 19:34:17 +00:00
yang.zhang@arm.com
63996ab7ca Fix the bug (0 extension from int to int64) in ScaleARGBRowDownEven_NEON.
Reason of this bug is that ARM64 can't extend the sign bit of a 32-bit integer
to 64-bit integer automatically.
ScaleARGBRowDownEven_NEON is also enabled for ARM64.

BUG=319
TESTED=libyuv_unittest
R=fbarchard@google.com

Change-Id: Ib8d30a05156239247296aa8bb4faa94b4f69a9c3

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1273 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-10 06:04:12 +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
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
35037cb948 For 32 bit x86 with fpic use memory instead of register for count
BUG=399
TESTED=try bots
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1269 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-08 21:28:40 +00:00
fbarchard@google.com
fd8054791c build fixe for InterpolateRow_MIPS_DSPR2
BUG=398
TESTED=untested
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1268 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-07 01:01:30 +00:00
fbarchard@google.com
a246086243 use the same structures for sse and avx yuv to rgb.
BUG=396
TESTED=local build still passes on sse
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1267 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-06 21:05:38 +00:00
fbarchard@google.com
cf925c50bc Make Yvu vs Yuv use same code and structure but pass in a different version of the matrix
BUG=396
TESTED=ncval
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1266 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-06 00:29:08 +00:00
fbarchard@google.com
1663996c52 Remove ifdef __SSE2__ and native client ifdef for r14 in register usage declarations.
BUG=395
TESTED=gcc build with nacl
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1264 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-05 23:09:15 +00:00
fbarchard@google.com
3cb485533a NaCL port of YToARGB for AVX2
BUG=393
TESTED=d:\src\nacl_sdk\pepper_canary\tools\ncval.exe newlib/Release/nacltest_x86_32.nexe
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1263 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-05 21:32:15 +00:00
fbarchard@google.com
baafc97d6b port YToARGB AVX2 to GCC
BUG=393
TESTED=untested
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1262 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-02-05 20:17:27 +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
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
29db9b0b89 C version of YToARGB with ubias removed to produce consistent luma ramp.
BUG=392
TESTED=TestGreyYUV
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1251 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-26 23:07:46 +00:00