Frank Barchard
b071a3d321
subsample yuy2 dest
...
BUG=455
TESTED=out\release\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter=*ARGBToYUY2*
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/58429004 .
2015-06-15 12:01:28 -07:00
Frank Barchard
58ca9f899e
remainder done unconditionally and with a variable
...
BUG=448
TESTED=local build
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/57559004 .
2015-06-12 17:21:41 -07:00
Frank Barchard
242cb2554c
nv12 odd width support using SIMD for remainder
...
BUG=libyuv:448
TESTED=NV21ToRGB565_Any etc
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/53689004 .
2015-06-12 16:07:20 -07:00
Frank Barchard
cae07fb0e0
bump subsampling up
...
BUG=455
TESTED=libyuvTest.ARGBToYUY2_Random
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/58419004 .
2015-06-12 15:25:03 -07:00
Frank Barchard
03da5420bc
use SIMD for I420ToARGB odd widths in a temporary buffer instead of using C for remainder.
...
Enter a description of the change.
use SIMD for I420ToARGB odd widths in a temporary buffer instead of using C for remainder. Currently the C code does not exactly match the SIMD code, so an odd width produces different pixels than an even width, causing a subtle artifact. By using SIMD consistently, there is no difference in even and odd widths. Also the SIMD performance is faster, so even with overhead of memcpy, performance improves.
BUG=447
TESTED=out\release\libyuv_unittest.exe --gtest_filter=*I420ToARGB*
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/55579004 .
2015-06-11 16:38:52 -07:00
Frank Barchard
ee351bc2d5
check height is non-zero
...
BUG=none
TESTED=libyuv unittest with even width
R=bcornell@google.com
Review URL: https://webrtc-codereview.appspot.com/51219004 .
2015-06-11 16:35:20 -07:00
fbarchard@google.com
2e9f3e5cf5
rename source files from row_posix.cc etc to row_gcc.cc to avoid gyp build filtering out source files from build when on windows with clang. The source code contained in row_gcc.cc is gcc syntax inline assembly available for any platform that supports gcc or clang for intel cpus.
...
BUG=440
TESTED=try bots
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/56579004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1430 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-06-09 17:27:52 +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
b07de879b6
enable intrinsics for clangcl if -mssse3 is enabled.
...
BUG=451
TESTED=untested
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/52699004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1427 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-06-08 22:48:18 +00:00
fbarchard@google.com
bd2d903e1b
odd width support for ARGBSobel functions. Improves performance for images that are not a multiple of 8 pixels.
...
BUG=444
TESTED=libyuvTest.ARGBSobel_Opt
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/54589004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1415 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-28 22:22:28 +00: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
7c09264ffc
odd width support for scale by even scale factor and box scale down by 4. scale down by 4 uses scale down by 2 internally.
...
BUG=431
TESTED=libyuvTest.ARGBScaleDownBy4_Bilinear
Review URL: https://webrtc-codereview.appspot.com/57399004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1412 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-26 17:56:51 +00:00
fbarchard@google.com
c38aeec322
scale down by 2 on argb images support odd widths using _any function.
...
BUG=431
TESTED=libyuvTest.ARGBScaleDownBy2_Bilinear
Review URL: https://webrtc-codereview.appspot.com/52569004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1410 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-22 21:39:21 +00:00
fbarchard@google.com
632c50f29c
include posix source for 64 bit clang builds.
...
BUG=440
TESTED=ninja -C out\Release_x64
R=bcornell@google.com
Review URL: https://webrtc-codereview.appspot.com/46259004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1407 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-14 21:40:05 +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
fbarchard@google.com
b33dc47b54
sobel use LL for constants to be passed in as int64
...
BUG=437
TESTED=local ios build
Review URL: https://webrtc-codereview.appspot.com/47129004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1404 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-06 02:34:16 +00:00
fbarchard@google.com
d3f51b58f0
work arounds for ios 64 bit compiler where int passed into assembly needs to be explicitely cast to 'w' register.
...
BUG=437
TESTED=local ios build
R=bcornell@google.com
Review URL: https://webrtc-codereview.appspot.com/49289004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1402 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-05 22:46:16 +00:00
fbarchard@google.com
b0f8352245
row_neon64 additional fixes for warning on ios where int doesnt match %2 size which is 64 bit by default. change size to explicitely 32 bit with %w2.
...
BUG=437
TESTED=try bots
Review URL: https://webrtc-codereview.appspot.com/43349004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1401 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-05 17:26:57 +00:00
fbarchard@google.com
a20e2c6213
row_neon64 fix for warning on ios where int width doesnt match %2 size which is 64 bit by default. change size to explicitely 32 bit with %w2.
...
BUG=437
TESTED=try bots
R=bcornell@google.com
Review URL: https://webrtc-codereview.appspot.com/47119004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1399 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-04 22:53:53 +00:00
fbarchard@google.com
6d5554661f
scale 64 bit fix for warning on ios where int width doesnt match %2 size which is 64 bit by default. change size to explicitely 32 bit with %w2.
...
BUG=437
TESTED=try bots
R=bcornell@google.com
Review URL: https://webrtc-codereview.appspot.com/43339004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1398 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-04 22:03:53 +00:00
fbarchard@google.com
e8c90c31ee
fix for warning on ios 64 bit that int width doesnt match %2 size which is 64 bit by default. change size to explicitely 32 bit with %w2.
...
BUG=437
TESTED=try bots
R=bcornell@google.com
Review URL: https://webrtc-codereview.appspot.com/49279004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1397 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-04 21:16:03 +00:00
fbarchard@google.com
54e78d12e0
make windows code built with clangcl include the _posix source code.
...
depot_tools excludes these source files now, so they need to be manually
included.
BUG=435
TESTED=clangcl local build on windows
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/52419004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1396 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-02 01:00:01 +00:00
fbarchard@google.com
2c44965e8d
make row_win windows code built with clangcl include the _posix source code.
...
depot_tools excludes these source files now, so they need to be manually
included.
BUG=435
TESTED=clangcl local build on windows
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/49879004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1395 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-02 00:39:29 +00:00
fbarchard@google.com
484e5d2d23
make windows code built with clangcl include the _posix source code. depot_tools excludes these source files now, so they need to be manually included.
...
BUG=435
TESTED=clangcl local build on windows
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/46199004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1394 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-05-02 00:15:05 +00:00
fbarchard@google.com
ab6b224675
fix for arm builds where tmp for assembly produces an error if its uninitialized.
...
BUG=libyuv:432
TESTED=try bots
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/49249004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1392 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-30 18:21:19 +00:00
fbarchard@google.com
31806d76d9
scale to 3/4 bug fix for odd widths. multiply to index into source by scale factor should be 4 / 3 not 3 / 4.
...
BUG=433
TESTED=set LIBYUV_WIDTH=1276 out\release\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter=*.Scale*
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/49219004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1391 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-30 17:18:13 +00:00
fbarchard@google.com
9f4636e298
AVX2 port of ScaleDownBy4.
...
BUG=314
TESTED=out\release\libyuv_unittest --gtest_filter=*.ScaleDownBy4*
Review URL: https://webrtc-codereview.appspot.com/46159004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1390 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-30 01:58:32 +00:00
fbarchard@google.com
5abb6d4556
disable stucture padded warnings on win64 builds.
...
BUG=432
TESTED=local win64 build
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/48289004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1389 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-28 23:18:07 +00:00
fbarchard@google.com
e23274cad2
remove unused function SumBox.
...
BUG=432
TESTED=untested
R=bcornell@google.com
Review URL: https://webrtc-codereview.appspot.com/48279004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1388 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-28 22:13:44 +00:00
fbarchard@google.com
428fce642d
remove unused function ScalePlaneBoxRow_* which was for slow box filter that is no longer used.
...
BUG=432
TESTED=try bots
R=bcornell@google.com
Review URL: https://webrtc-codereview.appspot.com/51779004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1387 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-28 21:00:16 +00:00
fbarchard@google.com
35aa92a1ea
fixed unused variables/code warnings in scale box function
...
BUG=libyuv:432
TESTED=local windows build with chromium_code =1
R=bcornell@google.com
Review URL: https://webrtc-codereview.appspot.com/49849004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1385 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-28 18:41:04 +00:00
fbarchard@google.com
f995021f35
Work around casting warnings in scale_neon64.cc for ios 64 bit.
...
BUG=430
TESTED=untested
R=bcornell@google.com
Review URL: https://webrtc-codereview.appspot.com/49799004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1382 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-28 00:02:46 +00:00
fbarchard@google.com
a81da96c90
Work around for ios 64 bit build warning - use explicit word register for int.
...
BUG=430
TESTED=local ios 64 bit build
R=bcornell@google.com
Review URL: https://webrtc-codereview.appspot.com/47039004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1381 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-27 23:53:11 +00:00
fbarchard@google.com
4e78b8dc2e
scale to 3/4 or 3/8 with odd width destinations efficiently. previously if width was not multiple of what the simd loop would do (24), scaling would fall back on slower C code. This change allows SIMD to be used for most of the scaling and C for the remainder, improving efficiency.
...
BUG=314
TESTED=set LIBYUV_WIDTH=1896 & ScaleDownBy3by4_*
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/48249004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1380 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-27 21:56:08 +00:00
fbarchard@google.com
1ffb04b43e
Allow ScaleRowDown any functions to accept non-power of 2 for destination SIMD multiple.
...
BUG=none
TESTED=local unittests pass
R=bcornell@google.com
Review URL: https://webrtc-codereview.appspot.com/45129004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1379 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-24 22:32:12 +00:00
fbarchard@google.com
2b7f6b7dee
ScaleAddRows_Any_SSE2 functions for handling odd widths.
...
BUG=425
TESTED=out\release\libyuv_unittest_old --gtest_filter=*.ScaleDownBy3_*
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/45219004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1377 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-22 00:51:56 +00:00
fbarchard@google.com
01db3d1d1d
Remove declspec(align(32)) from AVX2 functions.
...
BUG=422
TESTED=untested
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/43229004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1374 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-20 22:57:04 +00:00
fbarchard@google.com
812f59ed40
box and point sampling use scaledownby4 but linear and bilinear do not.
...
BUG=427
TESTED=out\release\libyuv_unittest --gtest_filter=*.ScaleDownBy4_*
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/51689004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1373 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-17 18:04:09 +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
c9986313ac
lsl by 2 requires a number sign for xcode on ios 64 bit build. add the # sign for ios compatibility. remove legacy x86 asm files that are unused. the unused files cause complications in build systems that build all files.
...
BUG=libyuv:423
TESTED=try bots
R=noahric@google.com
Review URL: https://webrtc-codereview.appspot.com/45119004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1369 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-14 19:57:33 +00:00
fbarchard@google.com
32ad6e0e12
Remove unused variable 'I422ToRGB565Row' that breaks osx builds.
...
BUG=426
TESTED=untested
Review URL: https://webrtc-codereview.appspot.com/48079004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1368 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-14 02:50:35 +00:00
fbarchard@google.com
013e812275
Port box filter to AVX2.
...
BUG=libyuv:425
TESTED=c:\intelsde\sde -ast -hsw -- out\release\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter=*libyuvTest.ScaleTo640x360_Box
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/43149004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1367 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-14 00:21:15 +00:00
fbarchard@google.com
b5ea79d845
add rows handle height of 1 using a more general while-style loop.
...
BUG=none
TESTED=try bots
Review URL: https://webrtc-codereview.appspot.com/45999004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1366 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-13 18:56:08 +00:00
fbarchard@google.com
c7161d1c36
Remove code alignment declspec from Visual C versions for vs2014 compatibility.
...
BUG=422
TESTED=local vs2013 build still passes.
Review URL: https://webrtc-codereview.appspot.com/45959004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1365 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-12 23:54:26 +00:00
fbarchard@google.com
1eb51bcf01
Fix bug in YUV to RGB for gcc/clang and enable affected functions.
...
BUG=393
TESTED=sde -ast -hsw -- out\release\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter=*I422ToARGB*
Review URL: https://webrtc-codereview.appspot.com/48019004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1364 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-08 02:32:33 +00:00
fbarchard@google.com
bb5a009d11
ARGB4444ToARGB and ARGB1555ToARGB ported to AVX2.
...
BUG=421
TESTED=out\release\libyuv_unittest --gtest_filter=*ARGB4444ToARGB*
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/48009004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1363 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-07 23:52:57 +00:00
fbarchard@google.com
8b9f908134
RGB565ToARGB AVX2 vzeroupper before the ret, not after.
...
BUG=421
TESTED=out\release\libyuv_unittest --gtest_filter=*RGB565ToARGB*
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/51549004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1362 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-07 22:53:12 +00:00
yang.zhang@arm.com
5f609856de
Add ScaleARGBFilterCols_NEON for ARM32/64
...
ARM32/64 NEON versions of ScaleARGBFilterCols_NEON are implemented.
BUG=319
TESTED=libyuvTest.* on ARM32/64 with Android
R=fbarchard@google.com
Change-Id: Ifea62bc25d846bf16cb51d13b408de7bf58dccd4
Review URL: https://webrtc-codereview.appspot.com/46699004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1361 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-07 03:45:29 +00:00
fbarchard@google.com
3d1176a3f8
ARGBToYJRow_AVX2 hooked up for ARGBToJ422
...
BUG=none
TESTED=ARGBToJ422 unittest
Review URL: https://webrtc-codereview.appspot.com/44079004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1360 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-07 00:39:25 +00:00
fbarchard@google.com
8f0b32773c
ARGBToUV AVX2 functions hooked up.
...
BUG=none
TESTED=RGB565ToI420
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/46829004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1359 16f28f9a-4ce2-e073-06de-1de4eb20be90
2015-04-07 00:10:52 +00:00