129 Commits

Author SHA1 Message Date
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
73c32d92d7 neon64 use yuvconstants like 32 bit code.
TBR=harryjin@google.com
BUG=libyuv:488

Review URL: https://codereview.chromium.org/1345643002 .
2015-09-14 16:43:07 -07:00
Frank Barchard
a67927c994 use struct instead of vectors
TBR=harryjin@google.com
BUG=libyuv:488

Review URL: https://codereview.chromium.org/1345623003 .
2015-09-14 16:07:58 -07:00
Frank Barchard
909160b3b5 use same macros as row_gcc.cc
R=harryjin@google.com
BUG=libyuv:488

Review URL: https://codereview.chromium.org/1343863002 .
2015-09-14 15:36:10 -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
1f461f73d8 remove align directives
R=harryjin@google.com
BUG=none

Review URL: https://webrtc-codereview.appspot.com/54809004.
2015-08-04 17:00:03 -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
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
yang.zhang@arm.com
c00796c4e4 Fix the issue of q4 register not in clobber list for ARMv7
On ARMv7 platform, q4 is used, but it isn't declared in clobber list.
It results that q4 isn't preserved automatically by compiler. So that the value of q4 is destroyed.

BUG=418
TESTED=libyuvTest.* on ARM32 with Android
R=fbarchard@google.com

Change-Id: Ib9b5eff8231c5057f4d58f1c4029f5452222af55

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1353 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-02 02:33:23 +00:00
yang.zhang@arm.com
e246e6c18f Add ARGBToRGB565DitherRow_NEON for ARM32/64
ARM32/64 NEON versions of ARGBToRGB565DitherRow_NEON are implemented.

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

Change-Id: Ia689170fb39db964392e5e1113801592ab0628bf

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1335 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-03-17 02:22:25 +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
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
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
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
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
89671c4de1 Fix for build on 32 bit neon
BUG=none
TESTED=nacl neon build
R=harryjin@google.com, tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1221 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-09 17:40:56 +00:00
fbarchard@google.com
852f4854c0 Neon version of new SetRow functions for rectangles.
BUG=387
TESTED=untested
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1220 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-01-09 00:15:44 +00:00
yang.zhang@arm.com
002feab4c5 Fix the bug in ARGBColorMatrixRow_NEON
BUG=371
TESTED=libyuv_unittest and test case written by myself
R=fbarchard@google.com

Change-Id: I652dc23e4be75bd51d15a8a7f9d023594c9cd032




git-svn-id: http://libyuv.googlecode.com/svn/trunk@1211 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-12-19 08:09:04 +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
fbarchard@google.com
8cbfc5d41f Change ifdefs for arm 32 and 64 bit so there will only be 32 bit in legacy mode.
BUG=357
TESTED=ios arm64 build
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1083 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-09-15 22:05:01 +00:00
ashok.bhat@gmail.com
c8f529a48f Remove extra MEMACCESS
TESTED=libyuv_unittest

Change-Id: I25fae71200ea44846eea3604a55bf4a88ea593ce
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>


git-svn-id: http://libyuv.googlecode.com/svn/trunk@1039 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-07-29 18:32:59 +00:00
fbarchard@google.com
1b9df4c5c8 Add nacl version check to enable Neon on M37 and bundles for X86 on M33
BUG=333
TESTED=nacl build and validate
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1019 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-06-24 22:26:30 +00:00
fbarchard@google.com
b1df26dc27 rotate neon code port to nacl
BUG=333
TESTED=ncval
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1014 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-06-13 23:02:10 +00:00
fbarchard@google.com
0bb310ebc4 Add bic instructions before each load or store for nacl
BUG=333
TESTED=validator
R=jfb@chromium.org

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1013 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-06-13 17:20:52 +00:00
fbarchard@google.com
37ad8b6507 Port libyuv neon to nacl - compare
BUG=333
TESTED=d:\src\nacl_sdk\pepper_canary\tools\ncval.exe newlib/Release/nacltest_arm.nexe
R=nfullagar@chromium.org

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1006 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-05-21 19:04:15 +00:00
fbarchard@google.com
06ed625808 Neon RGBToUV more accurate coefficients and subsample averaging. Instead of adding 4 pixels and making coefficients 4x smaller, this makes the coefficients 2x small and does a shift, for best accuracy.
BUG=297
TESTED=try bots
R=tpsiaki@google.com, yunqingwang@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@920 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-12-26 19:17:21 +00:00
fbarchard@google.com
c2295807bd Reduce alignment for loops from 16 bytes to 4 bytes. Reduces outer loop overhead without hurting innerloop time.
BUG=none
TESTED=try bots
R=fbarchard@chromium.org, mflodman@webrtc.org

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@880 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-12-02 15:57:39 +00:00
fbarchard@google.com
08b24a4232 Bayer GG specialized version for Sobel
BUG=none
TEST=Sobel
R=johannkoenig@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@826 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-25 07:39:43 +00:00
fbarchard@google.com
8be4b289c7 ARGBSobelToPlane which produces a planar output.
BUG=none
TEST=none
R=ryanpetrie@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@818 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-21 18:39:07 +00:00
fbarchard@google.com
c99db063e2 Change ARGBColorMatrix to a 4x4.
BUG=none
TEST=planar_unitest updates
R=johannkoenig@google.com, ryanpetrie@google.com, thorcarpenter@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@805 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-01 01:27:30 +00:00
fbarchard@google.com
f2aa91a1ac replace static const with static to avoid internal compiler error with gcc
BUG=258
TEST=try bots
R=johannkoenig@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@743 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-08-02 17:48:24 +00:00
fbarchard@google.com
2c4e3993c0 Change vld and vst to specify only elements and size not sign for better arm compiler compatability.
BUG=none
TEST=none
R=kma@webrtc.org, mflodman@webrtc.org

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@721 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-06-10 16:21:57 +00:00
fbarchard@google.com
b911428afd Adapt row interpolator to do YUV as well as ARGB without extrude so it can be used in I420Scale.
BUG=237
TEST=Scale*
R=ryanpetrie@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@710 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-05-30 23:42:27 +00:00
fbarchard@google.com
ff4a84168d Fix neon comment
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/1286006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@646 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-05 19:13:13 +00:00
fbarchard@google.com
0cc0b4df46 Neon Color Matrix avoid overflow
BUG=214
TEST=planar_tests
Review URL: https://webrtc-codereview.appspot.com/1276004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@644 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-05 04:13:21 +00:00
fbarchard@google.com
c56a55fc72 Sobel and SobelXY Neon port. Improved Bayer - did 8 at time version, and specialized G channel version.
BUG=201
TEST=libyuvTest.TestSobel and libyuvTest.TestSobelXY
Review URL: https://webrtc-codereview.appspot.com/1279006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@642 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-04 18:33:44 +00:00
fbarchard@google.com
87adfaa61e Enable Sepia and improve unittest
BUG=214
TESTED=Sepia test improved
Review URL: https://webrtc-codereview.appspot.com/1201006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@631 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-02 17:54:27 +00:00
fbarchard@google.com
050b39a5cb Recomputed JPeg coefficients normalized to 128. Apply to ARGBGray function reusing YJ function/coefficients and rounding.
BUG=201
TESTED=Gray unittest improved
Review URL: https://webrtc-codereview.appspot.com/1269006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@629 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-01 20:07:14 +00:00
fbarchard@google.com
6a352141ef vrshrn by 8 for neon. vector rounding shift right with narrowing from u16 to u8.
BUG=183
TEST=try bots
Review URL: https://webrtc-codereview.appspot.com/1269007

git-svn-id: http://libyuv.googlecode.com/svn/trunk@628 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-01 20:04:22 +00:00
fbarchard@google.com
4e0d7cc2c6 Y coefficients for J420 need to be scaled by 255/219 to full range.
BUG=159
TESTED=out\release\libyuv_unittest --gtest_filter=*J*
Review URL: https://webrtc-codereview.appspot.com/1264004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@624 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-27 07:35:03 +00:00
fbarchard@google.com
cfaa66c041 ARGBToJ420 and ARGBToJ400 - Full range YUV Jpeg style.
BUG=159
TEST=*J4*
Review URL: https://webrtc-codereview.appspot.com/1243004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@622 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-26 09:14:46 +00:00
fbarchard@google.com
4f4c8b544c clobber list fix for arm
BUG=196
TEST=none
Review URL: https://webrtc-codereview.appspot.com/1172004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@597 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-09 00:32:37 +00:00
fbarchard@google.com
1096543eaa ARGBShuffle AVX2
BUG=196
TESTED=BGRAToARGB*
Review URL: https://webrtc-codereview.appspot.com/1171006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@596 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-08 23:22:32 +00:00
fbarchard@google.com
b3446fc50c ARGBmultiply re-enabled with shifts and narrow as 2 steps.
BUG=183
TEST=none
Review URL: https://webrtc-codereview.appspot.com/1121008

git-svn-id: http://libyuv.googlecode.com/svn/trunk@584 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-02-27 02:23:54 +00:00
fbarchard@google.com
83a63e65a6 Change YUV_DISABLE_ASM to LIBYUV_DISABLE_NEON, LIBYUV_DISABLE_MIPS, LIBYUV_DISABLE_X86
BUG=189
TESTED=try
Review URL: https://webrtc-codereview.appspot.com/1113006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@582 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-02-27 00:20:29 +00:00
fbarchard@google.com
512bec91ed Disable Neon multiply 2 images
BUG=177
TEST=android try bots
Review URL: https://webrtc-codereview.appspot.com/1101005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@560 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-02-06 05:46:15 +00:00
fbarchard@google.com
cde587092f Replace two spaces with one after .
BUG=none
TEST=lint
Review URL: https://webrtc-codereview.appspot.com/1063010

git-svn-id: http://libyuv.googlecode.com/svn/trunk@553 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-01-28 00:02:35 +00:00
fbarchard@google.com
573a883dd6 Subtract 2 images.
BUG=179
TEST=planar unittest
Review URL: https://webrtc-codereview.appspot.com/1073004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@551 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-01-24 23:08:12 +00:00