Frank Barchard
d82f4baf5f
Upstream minor changes. Faster tests, Faster YUV Rotate180 and Mirror
...
Bug: libyuv:840, libyuv:849: b/144318948
Change-Id: I303c02ac2b838a09d3e623df7a69ffc085fe3cd2
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/1914781
Reviewed-by: Miguel Casas <mcasas@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2019-11-13 20:02:40 +00:00
Frank Barchard
681c6c6739
Add LIBYUV_API to NV12ToABGR and I444Rotate, I444Scale
...
Gaussian blur low levels ported to 32 bit neon.
But they are not hooked up to anything but a unittest.
Bug:b/248041731, b/132108021, b/129908793
Change-Id: Iccebb8ffd6b719810aa11dd770a525227da4c357
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/1611206
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Chong Zhang <chz@google.com>
2019-05-14 01:18:06 +00:00
Emmanuel Weber
05f72b8602
add I444Scale and I444Rotate
...
Bug: b:132108021
Change-Id: Ife6abbd54c4620984e412c9244c6b65fe4c7946a
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/1597418
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2019-05-06 23:43:11 +00:00
Martin Storsjö
9b772abf97
Restore the file mode for source files
...
This was changed in 21be9122aadf7824efe3fc19b2a09ff253a688e1.
Change-Id: I6c04dc92f673557e10c231bd090ec8aa88b6bee4
Reviewed-on: https://chromium-review.googlesource.com/1146183
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2018-08-06 18:53:32 +00:00
lixia zhang
21be9122aa
libyuv:loongson optimize compare/row/scale/rotate files with mmi.
...
Currently, libyuv supports MIPS SIMD Arch(MSA),
but libyuv does not supports MultiMedia Instruction(MMI)(such as loongson3a platform).
In order to improve performance of libyuv on loongson3a platform,
this provides optimize 98 functions with mmi.
BUG=libyuv:804
Change-Id: I8947626009efad769b3103a867363ece25d79629
Reviewed-on: https://chromium-review.googlesource.com/1122064
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2018-07-20 22:53:04 +00:00
Frank Barchard
92e22cf5b6
Lint cleanup after C99 change CL
...
TBR=braveyao@chromium.org
Bug: libyuv:774
Test: git cl lint
Change-Id: I51cf8107a8db17fbc9952d610f3e4d7aac5aa743
Reviewed-on: https://chromium-review.googlesource.com/882217
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2018-01-24 19:16:03 +00:00
Frank Barchard
7e389884a1
Switch to C99 types
...
Append _t to all sized types.
uint64 becomes uint64_t etc
Bug: libyuv:774
Test: try bots build on all platforms
Change-Id: Ide273d7f8012313d6610415d514a956d6f3a8cac
Reviewed-on: https://chromium-review.googlesource.com/879922
Reviewed-by: Miguel Casas <mcasas@chromium.org>
2018-01-23 19:16:05 +00:00
Frank Barchard
3b81288ece
Remove Mips DSPR2 code
...
Bug: libyuv:765
Test: build for mips still passes
Change-Id: I99105ad3951d2210c0793e3b9241c178442fdc37
Reviewed-on: https://chromium-review.googlesource.com/826404
Reviewed-by: Weiyong Yao <braveyao@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2017-12-14 18:22:16 +00:00
Frank Barchard
78e44628c6
Add MSA optimized SplitUV, Set, MirrorUV, SobelX and SobelY row functions.
...
TBR=kjellander@chromium.org
R=fbarchard@google.com
Bug:libyuv:634
Change-Id: Ie2342f841f1bb8469fc4631b784eddd804f5d53e
Reviewed-on: https://chromium-review.googlesource.com/616765
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-08-17 18:39:22 +00:00
Frank Barchard
73a603e120
clang-format 5.0 applied to libyuv
...
BUG=None
TEST=try bots and lint test
Change-Id: I1ab462adf2d309117862c5eb4b244a61ae202951
Reviewed-on: https://chromium-review.googlesource.com/450658
Commit-Queue: Frank Barchard <fbarchard@google.com>
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
2017-03-08 18:50:12 +00:00
Manojkumar Bhosale
73a6f100a9
Add MSA optimized rotate functions (used 16x16 transpose)
...
R=fbarchard@google.com
BUG=libyuv:634
Performance Gain (vs C vectorized)
TransposeWx16_MSA - ~6.0x
TransposeWx16_Any_MSA - ~4.7x
TransposeUVWx16_MSA - ~6.3x
TransposeUVWx16_Any_MSA - ~5.4x
Performance Gain (vs C non-vectorized)
TransposeWx16_MSA - ~6.0x
TransposeWx16_Any_MSA - ~4.8x
TransposeUVWx16_MSA - ~6.3x
TransposeUVWx16_Any_MSA - ~5.4x
Review-Url: https://codereview.chromium.org/2617703002 .
2017-01-13 15:50:02 +05:30
Manojkumar Bhosale
6fa5e4eb78
Add MSA optimized TransposeWx8_MSA and TransposeUVWx8_MSA functions
...
R=fbarchard@google.com
BUG=libyuv:634
Performance Gain (vs C vectorized)
TransposeWx8_MSA - ~2.7x
TransposeWx8_Any_MSA - ~2.1x
TransposeUVWx8_MSA - ~2.5x
TransposeUVWx8_Any_MSA - ~2.7x
Performance Gain (vs C non-vectorized)
TransposeWx8_MSA - ~4.6x
TransposeWx8_Any_MSA - ~2.9x
TransposeUVWx8_MSA - ~4.4x
TransposeUVWx8_Any_MSA - ~3.7x
Review URL: https://codereview.chromium.org/2553403002 .
2016-12-15 10:06:01 +05:30
Frank Barchard
e62309f259
clang-format libyuv
...
BUG=libyuv:654
R=kjellander@chromium.org
Review URL: https://codereview.chromium.org/2469353005 .
2016-11-07 17:37:23 -08:00
Frank Barchard
c5323b0fdc
Add MIPS SIMD Arch (MSA) optimized MirrorRow function
...
As per the preparation patch added in Chromium sources at,
2150943003: Add MIPS SIMD Arch (MSA) build flags for GYP/GN builds
This patch adds first MSA optimized function in libYUV project.
BUG=libyuv:634
R=fbarchard@google.com
Review URL: https://codereview.chromium.org/2285683002 .
2016-09-22 16:12:22 -07:00
Frank Barchard
0d880e5bc0
rename MIPS_DSPR2 to DSPR2 for consistency
...
When attempting to normalize function names to end in Row_SIMD it was made
harder with MIPS_DSPR2 naming convention.
Other CPUs do not include the vendor. This should be named consistently.
Removed the DISABLE_MIPS in favour of DISABLE_ASM for consistency with other
processors.
TBR=harryjin@google.com
BUG=libyuv:562
Review URL: https://codereview.chromium.org/1677633002 .
2016-02-05 14:49:54 -08:00
Frank Barchard
23c6a83561
Fix ifdef mismatch for mirroruv
...
Macro define and macro ifdef didnt match, leading to C code
being used. Make macro match function name.
TBR=harryjin@google.com
BUG=libyuv:543
Review URL: https://codereview.chromium.org/1579023002 .
2016-01-11 16:33:36 -08:00
Frank Barchard
2cc1a2b233
Remove sse2 functions that also have ssse3
...
ARGBBlendRow_SSE2, ARGBAttenuateRow_SSE2, and MirrorRow_SSE2
Since vast majority of CPUs have SSSE3 now, removing the SSE2
improves the performance of CPU dispatching.
R=harryjin@google.com
BUG=none
Review URL: https://codereview.chromium.org/1377053003 .
2015-09-30 14:24:44 -07:00
Frank Barchard
9425c4b01a
rotate nv12 any width
...
BUG=libyuv:464
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/55709004 .
2015-08-07 23:48:38 -07:00
Frank Barchard
45230390ff
add support for odd width rotate
...
R=harryjin@google.com
BUG=libyuv:464
Review URL: https://webrtc-codereview.appspot.com/52219004 .
2015-07-28 14:30:07 -07:00
Frank Barchard
cb54e8b69a
rename rotate macros and functions to match
...
BUG=libyuv:477
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/52199004 .
2015-07-27 17:00:41 -07:00
Frank Barchard
3a3a89ccd4
rotate include and proto cleanup
...
R=harryjin@google.com
BUG=libyuv:468
Review URL: https://webrtc-codereview.appspot.com/55679005 .
2015-07-22 18:09:04 -07:00
Frank Barchard
892807d860
move asm out of rotate into win/gcc and header
...
R=harryjin@google.com
BUG=libyuv:468
Review URL: https://webrtc-codereview.appspot.com/51319004 .
2015-07-22 11:22:55 -07:00
Frank Barchard
673fe7a684
create rotate_row header
...
R=tpsiaki@google.com , tpsiaki
BUG=none
TESTED=local build still works.
Review URL: https://webrtc-codereview.appspot.com/50329004 .
2015-07-09 14:40:35 -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
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
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
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
91f240c5db
Move sub before branch for loops.
...
Remove CopyRow_x86
Add CopyRow_Any versions for AVX, SSE2 and Neon.
BUG=269
TESTED=local build
R=harryjin@google.com , tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/26209004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1175 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-11-20 21:14:27 +00:00
fbarchard@google.com
59ed448685
MirrorAny functions so assembly can always be used.
...
BUG=none
TESTED=untested
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/29069004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1170 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-11-18 01:03:47 +00:00
fbarchard@google.com
e737688603
Fix for r1122 to change back to elif for rotate build error on Mac.
...
BUG=268
TESTED=try bot
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/31749004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1123 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-10-16 22:21:48 +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
zhongwei.yao@arm.com
0eb196f8db
clear aarch64 related macro and fix bugs
...
fix 2 bugs:
- build bug libyuv.gyp
- runtime bug in ScaleRowDown38_2_Box_NEON
BUG=
TESTED=libyuv_unittest
R=fbarchard@google.com , fbarchard@chromium.org
Review URL: https://webrtc-codereview.appspot.com/23939004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1117 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-10-09 02:00:40 +00:00
fbarchard@google.com
455ae94c60
Make rotate SIMD allow unaligned pointers.
...
BUG=365
TESTED=libyuv_unittest
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/22899004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1102 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-10-02 17:56:48 +00:00
fbarchard@google.com
d33bf86b25
CopyRow_AVX which supports unaligned pointers for Sandy Bridge CPU.
...
BUG=363
TESTED=out\release\libyuv_unittest --gtest_filter=*ARGBToARGB_*
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/31489004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1097 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-09-29 23:53:18 +00:00
zhongwei.yao@arm.com
60ccea47d9
add TransposeWx8_NEON's aarch64 implementation
...
BUG=319
TESTED=libyuv_unittest
R=fbarchard@chromium.org , fbarchard@google.com
Review URL: https://webrtc-codereview.appspot.com/20259004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1081 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-09-12 08:11:20 +00:00
yang.zhang@arm.com
c386168c76
Rotate ARM64 NEON implementation - TransposeUVWx8_NEON
...
BUG=319
TESTED=libyuv_unittest
R=fbarchard@google.com
Change-Id: I1dc89b35d4c4bf011cd04b549aaf9d777b1acc65
Review URL: https://webrtc-codereview.appspot.com/23399004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1078 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-09-10 06:02:55 +00:00
zhongwei.yao@arm.com
4667addfb8
Add a placeholder file for ARM64 Rotate Neon implementation
...
BUG=319
TESTED=libyuv_unittest
R=fbarchard@google.com
Review URL: https://webrtc-codereview.appspot.com/18189004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1073 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-09-01 08:50:49 +00:00
fbarchard@google.com
65a324ed34
remove extern "C" from rotate function, since its built with extern "C" around full file.
...
BUG=341
TESTED=clang -c -Iinclude source/rotate.c
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/17919004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@1031 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-07-08 22:06:56 +00:00
fbarchard@google.com
e28b2084d7
Rotate functions ported to C. This completes all rotate functionality under c89, for overall 71% complete port.
...
BUG=303
TESTED=cl /c /TC /Iinclude source/rotate_argb.cc
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/6959004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@963 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-01-13 18:31:35 +00:00
fbarchard@google.com
db73518b19
use LIBYUV_BOOL instead of bool
...
BUG=303
TESTED=try
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/6519006
git-svn-id: http://libyuv.googlecode.com/svn/trunk@953 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-01-07 03:59:31 +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
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
ae9a1388a7
Use malloc for row buffers in rotate
...
BUG=296
TESTED=rotate_test
R=tpsiaki@google.com
Review URL: https://webrtc-codereview.appspot.com/6329004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@922 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-12-26 21:41:11 +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
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
d593876b16
Disable assembly for rotate and scale
...
BUG=253
TEST=validator
R=nfullagar@google.com
Review URL: https://webrtc-codereview.appspot.com/2034004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@760 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-08-14 18:45:16 +00:00
fbarchard@google.com
ee34d49b28
Fix for ret in rotate for nacl 32 bit
...
BUG=253
TESTED=VALID
R=nfullagar@google.com
Review URL: https://webrtc-codereview.appspot.com/2009005
git-svn-id: http://libyuv.googlecode.com/svn/trunk@755 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-08-12 23:28:28 +00:00
fbarchard@google.com
eed4149e10
gcc msys compile ifdefs avoid Visual C inline
...
BUG=243
TEST=local compile with gcc
R=jkoleszar@google.com
Review URL: https://webrtc-codereview.appspot.com/1613004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@717 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-06-04 17:58:57 +00:00
fbarchard@google.com
58f50df879
Add Rotate Plane
...
BUG=233
TEST=RotatePlane*
R=ryanpetrie@google.com
Review URL: https://webrtc-codereview.appspot.com/1582004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@704 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-05-28 22:40:05 +00:00
fbarchard@google.com
aa7988ff73
Enhanced Rep Mov String version of CopyRow for posix and use cpu detect for ERMS
...
BUG=213
TEST=none
Review URL: https://webrtc-codereview.appspot.com/1306008
git-svn-id: http://libyuv.googlecode.com/svn/trunk@658 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-04-12 00:44:33 +00:00