Frank Barchard
62c49dc811
move constants into common
...
R=harryjin@google.com
BUG=libyuv:488
Review URL: https://codereview.chromium.org/1359443005 .
2015-09-18 16:28:44 -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
28ce7d94f5
j422toabgr neon port using i422toabgr matrix function.
...
R=harryjin@google.com
BUG=libyuv:488
Review URL: https://codereview.chromium.org/1353923003 .
2015-09-17 15:20:55 -07:00
Frank Barchard
6a6b67e7a9
Add H422ToARGB armv7 neon version.
...
Patch provided by zhongwei.yao@linaro.org
R=fbarchard@chromium.org , fbarchard@google.com
BUG=libyuv:488
Review URL: https://codereview.chromium.org/1344393002 .
2015-09-17 10:38:15 -07:00
Frank Barchard
509c644245
Add J422ToARGB armv7 neon version.
...
R=fbarchard@chromium.org , fbarchard@google.com
BUG=libyuv:488
Review URL: https://codereview.chromium.org/1334173005 .
2015-09-15 15:01:48 -07:00
Frank Barchard
67a9e30225
neon yuv matrix function
...
R=harryjin@google.com
BUG=libyuv:488
Review URL: https://codereview.chromium.org/1337973002 .
2015-09-11 11:12:30 -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
925c3d9e26
I420ToARGB conversion with matrix.
...
Take color conversion constants as a parameter to row function for I420ToARGBMatrixRow_SSSE3.
Allows future variations of color space using a single low level.
R=harryjin@google.com
BUG=libyuv:488
Review URL: https://webrtc-codereview.appspot.com/56669004 .
2015-09-02 10:45:42 -07:00
Frank Barchard
d317a70c1d
llvm64 link error fix.
...
R=harryjin@google.com
BUG=libyuv:485
Review URL: https://webrtc-codereview.appspot.com/58479004 .
2015-08-24 14:21:04 -07:00
Frank Barchard
ee9aaea02f
i422torgb565 is asm for clangcl as well
...
Merge branch 'master' of https://chromium.googlesource.com/libyuv/libyuv into convertcl
allow lto for llvm but not gcc
R=harryjin@google.com
BUG=libyuv:469
Review URL: https://webrtc-codereview.appspot.com/52769004 .
2015-08-19 10:46:30 -07:00
Frank Barchard
18a9027ad9
const warning fix on dither, bump chromium deps and add files to ignore list generated by arm build
...
BUG=none
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/57639004 .
2015-07-27 11:47:01 -07:00
Frank Barchard
faebf89ce0
src_uv typo fix
...
R=harryjin@google.com
BUG=none
Review URL: https://webrtc-codereview.appspot.com/51299004 .
2015-07-15 18:21:06 -07:00
Frank Barchard
a209d7314b
simd for 1 to 1
...
R=harryjin@google.com , harryjin
BUG=448
Review URL: https://webrtc-codereview.appspot.com/55619004 .
2015-06-17 18:22:11 -07: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
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
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
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
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
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
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
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
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
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
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
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
fbarchard@google.com
d12a08712b
adjust ubias to minimize error histogram centering error.
...
BUG=324
TESTED=TestFullYUV
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/37739004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1248 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-23 22:16:33 +00:00
fbarchard@google.com
c62d30111f
adjust bias on Y channel so error histogram is better centered on green channel
...
BUG=324
TESTED=FullYUVTest
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/38689004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1245 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-22 19:43:34 +00:00
fbarchard@google.com
319f047710
Compute chroma using negative coefficients to extend range of U contribution on B to 2
...
BUG=324
TESTED=TestI420
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/41569004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1238 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-21 18:45:13 +00:00
fbarchard@google.com
3842299be8
YUV use same constant as asm then multiply by 0x0101 to replicate the value.
...
BUG=324
TESTED=try bots
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/41559004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1235 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-21 00:11:44 +00:00
fbarchard@google.com
c3d09f6021
Improve accuracy of luma channel in YUV to RGB conversion
...
BUG=324
TESTED=TestFullYUV
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/36859004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1233 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-20 23:42:15 +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
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
b2a6af1be6
Change rectangle low level functions to use more conventional row functions including 'any' variations. Previously the yuv function SetPlane stored 32 bit values. Now a more conventional memset() style function is used for YUV that stores bytes. On Haswell a rep stosb is used for YUV. Overall benefit of this CL is improved performance for 'any' width, and simpler row assembly instead of full image assembly. Previously ARGBRect used a low level function that supported a rectangle in assembly. Now it uses a row function, and relies on row coalesce to combine into a single low level call.
...
BUG=371
TESTED=untested
R=brucedawson@google.com , harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/35689004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1222 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-12 03:58:24 +00:00
fbarchard@google.com
992c3b089a
Use HAS_ARGBSETROWS_X86 to detect presence of function.
...
BUG=none
TESTED=rectangle unittests
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/35639004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1218 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-07 00:11:51 +00:00
fbarchard@google.com
5304aaaed1
Use post bias to adjust for Y - 16 to improve performance.
...
BUG=388
TESTED=set LIBYUV_DISABLE_ASM=1 out\release\libyuv_unittest --gtest_catch_exceptions=0 --gtest_filter=*I420ToARGB_Opt
R=brucedawson@google.com , harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/35609004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1213 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-12-30 00:02:06 +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
ca308327d2
Remove unaligned functions, since most function support unaligned memory now. This reduces complexity and improves performance for unaligned cases because C code can be avoided, and overhead is less. Downside is old cpus (core2 and earlier) will be slower for aligned memory case. Except mips, which has alignment requirement, but remove unaligned variant.
...
BUG=365
TESTED=unittest builds and passes locally
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/24839004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1113 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-10-07 00:59:31 +00:00
fbarchard@google.com
d83f63a3b4
InterpolateRow used for scale handle unaligned memory. Remove HalfRow which is not used.
...
BUG=367
TESTED=unittest on I422ToI420
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/28639004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1107 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-10-03 17:37:11 +00:00
ashok.bhat@gmail.com
c379d17195
Row AArch64 Neon implementation - Part 11
...
BUG=319
TESTED=libyuv_unittest
R=fbarchard@google.com
Change-Id: Id187c5cbdbbb5570598eb9fcd9c3d6699e175f03
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Review URL: https://webrtc-codereview.appspot.com/24759004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1096 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-09-29 18:10:20 +00:00
fbarchard@google.com
b18413e568
YUV scaling with 16 bit planes
...
BUG=331
TESTED=libyuv_unittest --gunit_also_run_disabled_tests --gtest_filter=**.ScaleFrom1280x720*
R=debargha@google.com , tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/17569004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1005 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-05-20 19:22:30 +00:00
fbarchard@google.com
02ff4e77e5
clang compatibility ifdef
...
BUG=none
TEST=none
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/7809004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@978 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-01-31 00:27:40 +00:00