45 Commits

Author SHA1 Message Date
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
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
9ed836b154 The 'Any' versions of functions can handle any width now, so remove the check from the calling code. This has 2 advantages - less code, and less overhead in calling function when any function is NOT used. Downside is more code for case where any is used.
BUG=373
TESTED=libyuv_unittest still passes
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1143 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-10-24 23:29:31 +00:00
fbarchard@google.com
f713691a6f Change elif to endif and if to allow AVX2 as well as SSE2 in future changes instead of one or the other.
BUG=none
TESTED=try bots
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1122 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-10-16 20:47:22 +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
aaddd24ba0 ARGBToNV12 fix for memory leak on row_u_mem.
BUG=352
TESTED=libyuv_unittest
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1057 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-08-21 22:40:22 +00:00
ashok.bhat@gmail.com
8f04ca5b9c Row AArch64 Neon implementation - Part 5
BUG=319
TESTED=libyuv_unittest
R=fbarchard@chromium.org, fbarchard@google.com

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

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1055 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-08-21 10:07:11 +00:00
fbarchard@google.com
8798e04075 Port conversion functions to c.
BUG=303
TESTED=cl /c /TC /Iinclude source\convert_from.cc source\convert_argb.cc source\convert_from_argb.cc
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1030 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-07-08 18:44:57 +00:00
fbarchard@google.com
a1f5254a95 Switch to c style casts for all source and includes.
BUG=303
TESTED=try
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@952 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-01-07 03:03:00 +00:00
fbarchard@google.com
9fd689e5bf Combines multiple allocs into one call.
BUG=300
TESTED=libyuv_unitests pass
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@932 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-12-30 21:11:21 +00:00
fbarchard@google.com
d9c9f37ac4 Conversions use malloc for row buffers.
BUG=296
TESTED=libyuv convert_test
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@928 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-12-27 02:00:30 +00:00
fbarchard@google.com
04f40278df yasm ALIGN uppercase
BUG=none
TEST=untested
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@885 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-12-03 00:51:14 +00:00
fbarchard@google.com
6368c10c9c Add __declspec(safebuffers) to functions with arrays on stack that have explicit checks to avoid a redundent compiler stack check.
BUG=none
TEST=unitests pass
R=ryanpetrie@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@837 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-11-01 21:27:31 +00:00
fbarchard@google.com
095f33d870 Coalesce rows by changing width/height and dropping into code instead of recursing. Improve coalesce by setting stride to 0 so it can be used even on odd width images. Reduce unittests to improve time to run emulators.
BUG=277
TEST=unittests all build and pass
R=ryanpetrie@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@819 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-21 19:29:10 +00:00
fbarchard@google.com
7e7c7753ba Remove alignment from ARGBToRGB24 and ARGBToRAW to allow fast code to be used all of the time. Improves performance on Westmere and beyond, hurts performance for aligned buffers on older CPUs.
BUG=230
TESTED=try bot
R=nfullagar@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@785 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-11 01:18:36 +00:00
fbarchard@google.com
7fa21d677c More ifdefs to build all libyuv and not get link errors on missing assembly
BUG=253
TEST=nacl validator
R=nfullagar@google.com, ryanpetrie@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@756 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-08-13 21:54:23 +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
4127a2637d ARGBInterpolate odd width support and inverted odd width test. ARGBToNV12/21 odd height fix. Compare test tolerate small height with warning.
BUG=202
TEST=libyuvTest.ARGBInterpolate85_Any_Invert
Review URL: https://webrtc-codereview.appspot.com/1325004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@663 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-15 10:43:33 +00:00
fbarchard@google.com
9b4c00b908 Move vzeroupper to row functions to simplify caller and allow mix of avx2 and sse2. Impact reduced by row coalescing.
BUG=none
TEST=all tests pass with sde
Review URL: https://webrtc-codereview.appspot.com/1269009

git-svn-id: http://libyuv.googlecode.com/svn/trunk@641 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-04 05:54:59 +00:00
fbarchard@google.com
91c50c3a7d ARGBToYJ_AVX2 port to AVX2.
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/1272008

git-svn-id: http://libyuv.googlecode.com/svn/trunk@640 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-03 23:47:10 +00:00
fbarchard@google.com
f8e9017685 switch toyuy2 from aligned to unaligned
BUG=211
TESTED=ToYUY2*
Review URL: https://webrtc-codereview.appspot.com/1274005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@633 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-02 21:18:12 +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
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
518833b983 Fix RGB565ToARGB_Any which uses SSE2 that requires ARGB alignment. Add row coalescing to convert_argb.cc. Improve coalescing on planar_functions.cc and convert_from_argb.cc. Use stride * 2 == width to test for even width. Apply coalescing to all functions that have same vertical subsampling.
BUG=197
TESTED=libyuv unittest passes where _Opt uses row coalescing.
Review URL: https://webrtc-codereview.appspot.com/1186004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@601 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-12 21:44:56 +00:00
fbarchard@google.com
4db105148e Fix white space (lint) and sort row.h defines
BUG=197
TEST=lint
Review URL: https://webrtc-codereview.appspot.com/1185004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@600 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-12 03:58:04 +00:00
fbarchard@google.com
11a524362d Coalesce rows
BUG=197
TESTED=out\release\libyuv_unittest --gtest_filter=*ARGBToI400*
Review URL: https://webrtc-codereview.appspot.com/1176004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@598 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-03-11 18:51:25 +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
b444bae883 ARGBToI400 and ARGBToI411 using AVX2. YUY2ToI420 and UVYVToI420 use AVX2. CopyPlane use rep movsb for AVX2. CopyPlane2 use rep movsb for AVX2 and CopyPlane if strides match AVX2, which will do a single rep movsb for entire image if stride == width. MergeUV for I420ToNV12.
BUG=181
TESTED=unittests pass
Review URL: https://webrtc-codereview.appspot.com/1103007

git-svn-id: http://libyuv.googlecode.com/svn/trunk@569 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-02-11 20:30:41 +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
41e972ec31 ARGBToI444_SSSE3 UV function ported. Thanks to changjun.yang@intel.com
BUG=148
TESTED=out\release\libyuv_unittest --gtest_filter=*ARGBToI* | grep ms
Review URL: https://webrtc-codereview.appspot.com/1019011

git-svn-id: http://libyuv.googlecode.com/svn/trunk@539 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-01-16 05:54:56 +00:00
fbarchard@google.com
958a0b0c19 lint cleanup
BUG=none
TEST=lint
Review URL: https://webrtc-codereview.appspot.com/931013

git-svn-id: http://libyuv.googlecode.com/svn/trunk@496 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-11-17 00:00:23 +00:00
fbarchard@google.com
4a86a836fc On Neon remove aligned SplitUVRow
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/930020

git-svn-id: http://libyuv.googlecode.com/svn/trunk@493 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-11-16 02:51:31 +00:00
fbarchard@google.com
f08ac6bb09 Rename row functions so they are all SomethingRow_CPU
BUG=133
TEST=still builds
Review URL: https://webrtc-codereview.appspot.com/939020

git-svn-id: http://libyuv.googlecode.com/svn/trunk@491 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-11-15 00:21:14 +00:00
fbarchard@google.com
9573071950 Neon RGB24 to I420
BUG=none
TEST=convert_test
Review URL: https://webrtc-codereview.appspot.com/965018

git-svn-id: http://libyuv.googlecode.com/svn/trunk@481 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-11-12 20:42:48 +00:00
fbarchard@google.com
522d757c92 Neon optimized ARGBToI444/422/411/420 Any variations, ARGB1555ToI420 Neon, ARGB4444ToI420
BUG=148
TEST=sudo LIBYUV_REPEAT=1000 nice --5 ./libyuv_unittest --gtest_filter=*R*ToI4* | sed 's/\(.*(\)\([0-9]*\)\( ms)\)/\2 - \1\2\3/g' | sort -rn | grep ms
Review URL: https://webrtc-codereview.appspot.com/936020

git-svn-id: http://libyuv.googlecode.com/svn/trunk@480 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-11-09 23:14:57 +00:00
fbarchard@google.com
dd2d512e5a 420 subsampler
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/935012

git-svn-id: http://libyuv.googlecode.com/svn/trunk@478 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-11-07 00:53:52 +00:00
fbarchard@google.com
76e851792c 411 subsampled
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/930013

git-svn-id: http://libyuv.googlecode.com/svn/trunk@477 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-11-06 22:51:39 +00:00
fbarchard@google.com
c4f443f8fe ARGBToUV422Row_NEON
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/928018

git-svn-id: http://libyuv.googlecode.com/svn/trunk@476 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-11-06 20:58:24 +00:00
fbarchard@google.com
c673f426de ARGBToI444 for Neon
BUG=none
TEST=libyuvTest.ARGBToI444_Opt
Review URL: https://webrtc-codereview.appspot.com/932013

git-svn-id: http://libyuv.googlecode.com/svn/trunk@475 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-11-06 18:46:51 +00:00
fbarchard@google.com
bdf7cb5914 RGB formats converted to YUV with Neon
BUG=none
TEST=convert_test
Review URL: https://webrtc-codereview.appspot.com/936013

git-svn-id: http://libyuv.googlecode.com/svn/trunk@471 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-11-05 23:40:11 +00:00
fbarchard@google.com
b7ae15a236 Neon optimized ARGBToY
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/916004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@427 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-10-19 08:25:48 +00:00
fbarchard@google.com
1bdcc4c3e3 rgb565 and argb1555 neon
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/881004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@420 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-10-15 17:46:59 +00:00
fbarchard@google.com
c389e8e3b1 Convert ARGB to ARGB4444 with Neon
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/875004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@415 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-10-13 02:51:48 +00:00
fbarchard@google.com
c7277d08e8 Add convert_from_argb.h for all conversion functions from ARGB to something else.
BUG=none
TEST=convert_test
Review URL: https://webrtc-codereview.appspot.com/857014

git-svn-id: http://libyuv.googlecode.com/svn/trunk@408 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-10-11 23:10:53 +00:00