Alexander Alekhin
d00e58cdb0
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2020-03-10 22:49:51 +00:00
Alexander Alekhin
612746b4e5
Merge pull request #16744 from alalek:fix_mat_aug_operators_use_after_free
2020-03-10 22:02:47 +00:00
Alexander Alekhin
3c85745e22
pre: OpenCV 4.3.0 (version++)
2020-03-10 15:00:03 +03:00
Alexander Alekhin
b7ecaceda8
pre: OpenCV 3.4.10 (version++)
...
- Android Manager version is not increased (stuck on 3.49)
2020-03-10 14:53:43 +03:00
Alexander Alekhin
619180dffd
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2020-03-06 20:41:30 +00:00
Alexander Alekhin
3a2f40ac6f
core: don't allow reallocation in add/div/sub/bitwise aug operators
2020-03-06 13:00:40 +00:00
Manoj Gupta
880d2afb67
Fix building with ToT libc++
...
ToT libc++ (LLVM) no longer includes <sstream>
as part of <complex> which breaks building opencv.
Include <sstream> header explcitly to fix this.
2020-03-05 17:10:43 -08:00
Alexander Alekhin
90a4d67e8d
Merge pull request #16513 from pwuertz:cuda_py_interop
2020-03-05 11:56:07 +00:00
Alexander Alekhin
d4a17da7b2
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2020-03-04 20:49:09 +00:00
Alexander Alekhin
4f288a1e28
Merge pull request #16704 from alalek:core_log_once_log_if
...
* core(logger): add CV_LOG_ONCE_xxx() CV_LOG_IF_xxx() macros
* core(logger): keep tests disabled
2020-03-04 20:42:41 +00:00
Alexander Alekhin
333a767be4
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2020-02-28 18:34:37 +00:00
Peter Würtz
5012fc5d23
Merge pull request #16684 from pwuertz:ignore_clang_mat_inl
...
* Ignore clang warnings for deprecated enum+enum operations in mat.inl.hpp
* build: added customization macros, cmake flags for OpenCV build
2020-02-28 21:21:03 +03:00
Alexander Alekhin
45d073f889
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2020-02-26 20:09:03 +03:00
Alexander Alekhin
2617c9aa64
Merge pull request #16673 from alalek:exclude_contrib_modules_4.x
2020-02-26 14:03:52 +00:00
Alexander Alekhin
84bb67e49b
exclude opencv_contrib modules
2020-02-26 15:12:45 +03:00
Peter Würtz
53c0189ed7
Allow access to CUDA memory and stream pointers for interoperability.
2020-02-26 11:11:03 +01:00
Maksim Shabunin
bf96d8239d
Use BufferArea in more places
2020-02-26 11:45:19 +03:00
Alexander Alekhin
01048e5603
Merge pull request #16616 from alalek:dnn_fix_input_shape
...
* dnn: fix processing of input shapes
- importer: avoid using of .setInput() => .setInputShape()
- setInput: shape limitation check (partial)
* dnn(test): test .setInput() in readNet()
2020-02-21 22:39:54 +03:00
Alexander Alekhin
966c2191cb
Merge pull request #13928 from catree:add_matx_div_operations
2020-02-21 22:35:03 +03:00
Maksim Shabunin
8b2c499be6
intrin: fixed int64->double conversion for AVX-512
2020-02-21 15:20:00 +03:00
Alexander Smorkalov
c87b99e82b
Added test for new MatX division.
2020-02-21 10:08:55 +03:00
Alexander Alekhin
aa2777ed61
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2020-02-10 19:40:29 +03:00
Pavel Rojtberg
e13a73d084
core: export getCPUFeaturesLine to bindings
2020-02-10 14:06:43 +01:00
Alexander Alekhin
eb14f9a464
Merge pull request #16463 from alalek:core_strong_ptr_alignment
2020-02-08 19:45:43 +00:00
Maksim Shabunin
55cdeaa6dd
BufferArea: initial version, usage in StereoBM
...
New class BufferArea is used to hide complexity of buffers allocations and allow instrumentation with valgrind and sanitizers.
2020-02-07 14:57:36 +03:00
Alexander Alekhin
bf2f7b0f8b
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2020-02-01 17:26:00 +00:00
gapry
ac9f8c1f41
Fixed Compilation warnings | Issue #16336
2020-02-01 03:32:42 +08:00
Alexander Alekhin
591f427003
Merge pull request #16459 from nh2:patch-1
2020-01-30 14:25:18 +00:00
Alexander Alekhin
a4bd7506a5
core: CV_STRONG_ALIGNMENT macro
...
Should be used to guard unsafe type casts of pointers
2020-01-29 18:44:17 +03:00
Niklas Hambüchen
70cbc3d883
cvdef.h: Don't use C's limits.h under C++
...
Just like with the other headers in the rest of the file.
See e.g. https://stackoverflow.com/questions/36831465/what-difference-does-it-make-when-i-include-limits-or-limits-h-in-my-c-cod
for the reasons, the most important one being that limits.h does not respect
namespaces, which can make problems for downstream consumers of cvdef.h.
2020-01-29 16:41:31 +01:00
Sayed Adel
ec033330df
core:vsx workaround for the unexpected results of vec_vbpermq
in gcc4.9
2020-01-29 15:05:12 +02:00
Sayed Adel
bd531bd828
core:vsx fix inline asm constraints
...
generalize constraints to 'wa' for VSX registers
2020-01-28 15:48:00 +02:00
Alexander Alekhin
3d14dd4e39
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2020-01-22 16:58:30 +03:00
Alexander Alekhin
d42e04d0df
core(SIMD): fix MSA build - add v_reduce_min/max for u8/s8
2020-01-20 15:10:03 +03:00
Chip Kerchner
301626ba26
Merge pull request #15488 from ChipKerchner:vectorizeMinMax2
...
Vectorize minMaxIdx functions
* Updated documentation and intrinsic tests for v_reduce
* Add other files back in from the forced push
* Prevent an constant overflow with v_reduce for int8 type
* Another alternative to fix constant overflow warning.
* Fix another compiler warning.
* Update comments and change comparison form to be consistent with other vectorized loops.
* Change return type of v_reduce_min & max for v_uint8 and v_uint16 to be same as lane type.
* Cast v_reduce functions to int to avoid overflow. Reduce number of parameters in MINMAXIDX_REDUCE macro.
* Restore cast type for v_reduce_min & max to LaneType
2020-01-17 19:37:35 +03:00
Alexander Alekhin
fb61f88b9c
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2020-01-12 09:35:39 +00:00
Alexander Alekhin
a9f3acb125
core(simd): fix NEON alignmnet issue
2020-01-11 18:39:50 +00:00
Alexander Alekhin
e180cc050b
Merge pull request #16236 from alalek:fix_core_simd_emulator
...
* core: fix intrin_cpp, allow to build modules with SIMD emulator
* core(arithm): fix v_zero initialization
* core(simd): 'strict' types for binary/bitwise operations
* features2d: avoid aligned load issue in GCC 5.4 with emulated SIMD
* core(simd): alignment checks in SIMD emulator
2020-01-10 21:31:02 +03:00
Alexander Alekhin
523f081923
core(check): add Size_<int>
2019-12-28 13:50:39 +00:00
Brian Wignall
f9c514b391
Fix spelling typos
...
backport commit 659ffaddb4
2019-12-27 12:46:53 +00:00
Brian Wignall
659ffaddb4
Fix spelling typos
2019-12-26 06:45:03 -05:00
Alexander Alekhin
89d3f95a8e
Merge tag '4.2.0'
2019-12-20 17:06:45 +03:00
Alexander Alekhin
bda89a6469
release: OpenCV 4.2.0
2019-12-20 16:44:16 +03:00
Alexander Alekhin
5e2bcc9149
Merge tag '3.4.9'
2019-12-20 12:44:15 +03:00
Alexander Alekhin
64e6cf9fe5
release: OpenCV 3.4.9
2019-12-19 18:16:47 +03:00
Alexander Alekhin
4c86fc13cb
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-12-19 15:09:05 +03:00
Alexander Alekhin
dff8e29f98
Merge pull request #16139 from alalek:core_flip_avoid_unaligned
2019-12-19 10:29:07 +00:00
Alexander Alekhin
8d22ac200f
core: workaround flipHoriz() alignment issues
2019-12-19 00:05:23 +00:00
Alexander Alekhin
c6c8783c60
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-12-16 21:30:30 +00:00
Tatsuro Shibamura
971ae00942
Merge pull request #16027 from shibayan:arm64-windows10
...
* Support ARM64 Windows 10 platform
* Fixed detection issue for ARM64 Windows 10
* Try enabling ARM NEON intrin
* build: disable NEON with MSVC compiler
* samples(directx): gdi32 dependency
2019-12-17 00:23:30 +03:00
Alexander Alekhin
92b9888837
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-12-12 13:02:19 +03:00
Alexander Alekhin
f2cce5fd8c
Merge pull request #16125 from alalek:core_safe_xadd
2019-12-11 14:15:46 +00:00
Alexander Alekhin
7d61426279
Merge pull request #16124 from alalek:issue_13354
2019-12-11 14:15:23 +00:00
Alexander Alekhin
416848066c
core: provide safe implementations of CV_XADD() only
2019-12-11 00:48:45 +00:00
Alexander Alekhin
76b5e19eb3
core: add "namespace cv" in CV_StaticAssert fallback implementation
2019-12-11 00:35:13 +00:00
Alexander Alekhin
a675c4937a
core: OPENCV_INCLUDE_PORT_FILE for custom platform configuration
2019-12-11 00:31:45 +00:00
Paul Murphy
a011035ed6
Merge pull request #15257 from pmur:resize
...
* resize: HResizeLinear reduce duplicate work
There appears to be a 2x unroll of the HResizeLinear against k,
however the k value is only incremented by 1 during the unroll. This
results in k - 1 duplicate passes when k > 1.
Likewise, the final pass may not respect the work done by the vector
loop. Start it with the offset returned by the vector op if
implemented. Note, no vector ops are implemented today.
The performance is most noticable on a linear downscale. A set of
performance tests are added to characterize this. The performance
improvement is 10-50% depending on the scaling.
* imgproc: vectorize HResizeLinear
Performance is mostly gated by the gather operations
for x inputs.
Likewise, provide a 2x unroll against k, this reduces the
number of alpha gathers by 1/2 for larger k.
While not a 4x improvement, it still performs substantially
better under P9 for a 1.4x improvement. P8 baseline is
1.05-1.10x due to reduced VSX instruction set.
For float types, this results in a more modest
1.2x improvement.
* Update U8 processing for non-bitexact linear resize
* core: hal: vsx: improve v_load_expand_q
With a little help, we can do this quickly without gprs on
all VSX enabled targets.
* resize: Fix cn == 3 step per feedback
Per feedback, ensure we don't overrun. This was caught via the
failure observed in Test_TensorFlow.inception_accuracy.
2019-12-09 14:54:06 +03:00
Alexander Alekhin
c3023fb52b
pre: OpenCV 4.2.0 (version++)
2019-12-06 12:58:57 +03:00
Alexander Alekhin
76a27e3399
pre: OpenCV 3.4.9 (version++)
2019-12-05 18:28:38 +00:00
Alexander Alekhin
8108fb0575
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-12-05 18:27:45 +03:00
Alexander Alekhin
f21bde4d9f
Merge pull request #16046 from alalek:issue_15990
...
* core: disable invalid constructors in C API by default
- C API objects will lose their default initializers through constructors
* samples: stop using of C API
2019-12-05 14:48:18 +03:00
Alexander Alekhin
01a28db949
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-11-29 18:57:33 +03:00
Vadim Levin
8d74101f07
Merge pull request #15955 from VadimLevin:dev/vlevin/generator_tests
...
Tests for argument conversion of Python bindings generator
* Tests for parsing elemental types from Python bindings
- Add positive and negative tests for int, float, double, size_t,
const char*, bool.
- Tests with wrong conversion behavior are skipped.
* Move implicit conversion of bool to integer/floating types to wrong
conversion behavior.
2019-11-29 16:24:13 +03:00
Alexander Alekhin
70146700aa
Merge pull request #15839 from alalek:core_simd_v_setall_template
2019-11-27 19:19:35 +00:00
Brian Wignall
af997529a1
Fix some typos
2019-11-26 18:41:19 +03:00
Brian Wignall
9276f1910b
Fix some typos
2019-11-25 19:55:07 -05:00
Alexander Alekhin
ad0ab4109a
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-11-22 22:47:13 +00:00
Alexander Alekhin
ec55b6f6db
core: fix MSA build
2019-11-21 18:59:41 +03:00
Everton Constantino
75315fb297
Merge pull request #15494 from everton1984:hal_vector_get_n
...
Improving VSX performance of integral function
* Adding support for vector get function on VSX datatypes so the
integral function gains a bit of performance.
* Removing get as a datatype member function and implementing a new HAL
instruction v_extract_n to get the n-th element of a vector register.
* Adding SSE/NEON/AVX intrinsics.
* Implement new HAL instruction v_broadcast_element on VSX/AVX/NEON/SSE.
* core(simd): add tests for v_extract_n/v_broadcast_element
- updated docs
- commented out code to repair compilation
- added WASM and MSA default implementations
* core(simd): fix compilation
- x86: avoid _mm256_extract_epi64/32/16/8 with MSVS 2015
- x86: _mm_extract_epi64 is 64-bit only
* cleanup
2019-11-20 13:41:07 +03:00
Alexander Alekhin
318cba4ce3
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-11-19 19:48:49 +00:00
Alexander Alekhin
e07a488012
Merge pull request #15925 from alalek:core_test_simd_cpp_emulation
...
core(test): extending tests with SIMD C++ emulation code (intrin_cpp.hpp)
* core(test): test SIMD CPP emulation code (intrin_cpp.hpp)
* core(simd): eliminate build warnings from intrin_cpp.hpp
2019-11-19 21:08:45 +03:00
Alexander Alekhin
fc41c18c6f
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-11-18 13:56:24 +03:00
Alexander Alekhin
6773b938b3
Merge pull request #15896 from alalek:build_gcc_9
2019-11-14 14:22:02 +00:00
Christoph Bachhuber
c638f085aa
Refactor for clarity and avoiding code duplication
...
Implement GArik's comments
Remove unnecessary c_str()
Fix brace position
2019-11-12 19:22:42 +01:00
Alexander Alekhin
7ecdcf6ca6
build: GCC9 compilation
2019-11-12 18:49:34 +03:00
Alexander Alekhin
b6a58818bb
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-11-11 20:25:42 +00:00
Igor Murzov
6d5b900324
Simplify OpenCL info dumping code:
...
* Reduce code nesting
* Drop redundant .c_str() calls
2019-11-05 14:49:49 +03:00
Alexander Alekhin
0d7f770996
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-11-04 09:58:29 +00:00
Alexander Alekhin
a893969ec9
core(simd): v_setall template
2019-11-03 12:49:25 +00:00
Alexander Alekhin
5c12bafe80
Merge pull request #15805 from i-murzov:3.4
2019-10-31 20:39:16 +00:00
Igor Murzov
a9d23a6479
Fix wording in some tutorials
2019-10-30 13:27:17 +03:00
Alexander Alekhin
ea5499fa51
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-10-29 20:46:51 +00:00
Alexander Alekhin
bad4e5c3eb
Merge pull request #15692 from alalek:core_tls_handle_thread_termination
2019-10-29 20:40:35 +00:00
Alexander Alekhin
055ffc0425
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-10-24 18:21:19 +00:00
Alexander Alekhin
17e2bf5717
core(tls): implement releasing of TLS on thread termination
...
- move TLS & instrumentation code out of core/utility.hpp
- (*) TLSData lost .gather() method (to dispose thread data on thread termination)
- use TLSDataAccumulator for reliable collecting of thread data
- prefer using of .detachData() + .cleanupDetachedData() instead of .gather() method
(*) API is broken: replace TLSData => TLSDataAccumulator if gather required
(objects disposal on threads termination is not available in accumulator mode)
2019-10-24 06:36:18 +00:00
Chip Kerchner
5a6a49405d
Merge pull request #15738 from ChipKerchner:bugInt64x2Comparison
...
Fixing bug with comparison of v_int64x2 or v_uint64x2
* Casting v_uint64x2 to v_float64x2 and comparing does NOT work in all cases. Rewrite using epi64 instructions - faster too.
* Fix bad merge.
* Fix equal comparsion for non-SSE4.1. Add test cases for v_int64x2 comparisons.
* Try to fix merge conflict.
* Only test v_int64x2 comparisons if CV_SIMD_64F
* Fix compiler warning.
2019-10-22 16:37:20 +03:00
Alexander Alekhin
24ebca5c59
core(simd): v_reverse() for MSA backend
2019-10-18 16:43:03 +03:00
Alexander Alekhin
a2b3cd9a2c
Merge pull request #15709 from alalek:js_simd_reverse
2019-10-17 13:14:50 +00:00
Alexander Alekhin
d31da08d43
Merge pull request #15708 from alalek:js_simd_support_1.38.48
2019-10-17 13:14:34 +00:00
Alexander Alekhin
ad172726c0
js(simd): v_reverse implementation
2019-10-15 18:46:08 +03:00
Alexander Alekhin
b1a8de0901
js(simd): support Emscripten 1.38.48-upstream
2019-10-15 15:39:22 +03:00
Chip Kerchner
027769bf5d
Merge pull request #15662 from ChipKerchner:addVReverseIntrinsic
...
* New v_reverse HAL intrinsic for reversing the ordering of a vector
* Fix conflict.
* Try to resolve conflict again.
* Try one more time.
* Add _MM_SHUFFLE. Remove non-vectorize code in SSE2. Fix copy and paste issue with NEON.
* Change v_uint16x8 SSE2 version to use shuffles
2019-10-11 18:34:17 +03:00
Alexander Alekhin
46206b4814
Merge tag '4.1.2'
2019-10-09 23:01:31 +00:00
Alexander Alekhin
4c71dbf0af
release: OpenCV 4.1.2
...
OpenCV 4.1.2
2019-10-09 22:53:14 +00:00
Alexander Alekhin
65573784c4
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-10-09 19:46:18 +00:00
Alexander Alekhin
dd4f591d54
Merge tag '3.4.8'
2019-10-09 18:33:35 +03:00
Alexander Alekhin
6bdb9ca725
OpenCV release (3.4.8)
...
OpenCV 3.4.8
2019-10-09 14:42:29 +03:00
Sean McBride
24effe8cd6
Fixed clang -Wnewline-eof warning by adding newline to end of file
2019-10-09 10:12:09 +03:00
Sayed Adel
f2fe6f40c2
Merge pull request #15510 from seiko2plus:issue15506
...
* core: rework and optimize SIMD implementation of dotProd
- add new universal intrinsics v_dotprod[int32], v_dotprod_expand[u&int8, u&int16, int32], v_cvt_f64(int64)
- add a boolean param for all v_dotprod&_expand intrinsics that change the behavior of addition order between
pairs in some platforms in order to reach the maximum optimization when the sum among all lanes is what only matters
- fix clang build on ppc64le
- support wide universal intrinsics for dotProd_32s
- remove raw SIMD and activate universal intrinsics for dotProd_8
- implement SIMD optimization for dotProd_s16&u16
- extend performance test data types of dotprod
- fix GCC VSX workaround of vec_mule and vec_mulo (in little-endian it must be swapped)
- optimize v_mul_expand(int32) on VSX
* core: remove boolean param from v_dotprod&_expand and implement v_dotprod_fast&v_dotprod_expand_fast
this changes made depend on "terfendail" review
2019-10-07 22:01:35 +03:00
Marcin Tolysz
53400d86e2
Fix compiler warnings for latest cuda npp which defines this itself as:
...
```
#define NPP_VER_MAJOR 10
#define NPP_VER_MINOR 2
#define NPP_VER_PATCH 0
#define NPP_VER_BUILD 243
#define NPP_VERSION (NPP_VER_MAJOR * 1000 + \
NPP_VER_MINOR * 100 + \
NPP_VER_PATCH)
2019-10-07 11:45:26 +01:00
Alexander Alekhin
626bfbf309
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-10-05 15:45:31 +00:00
Alexander Alekhin
bdc097495a
fix avx512 detection
...
- renamed Cascade Lake AVX512_CEL => AVX512_CLX (align with Intel SDE tool)
- fixed CLX instruction sets (no IFMA/VBMI)
- added flag to bypass CPU baseline check: OPENCV_SKIP_CPU_BASELINE_CHECK
2019-10-05 11:03:57 +00:00
Alexander Alekhin
e2a5a6a05c
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-09-25 18:32:44 +00:00
Alexander Alekhin
d2cacac07a
Merge pull request #15573 from alalek:build_cxx11_warnings
2019-09-24 22:08:55 +00:00
Wenzhao Xiang
c2096771cb
Merge pull request #15371 from Wenzhao-Xiang:gsoc_2019
...
[GSoC 2019] Improve the performance of JavaScript version of OpenCV (OpenCV.js)
* [GSoC 2019]
Improve the performance of JavaScript version of OpenCV (OpenCV.js):
1. Create the base of OpenCV.js performance test:
This perf test is based on benchmark.js(https://benchmarkjs.com ). And first add `cvtColor`, `Resize`, `Threshold` into it.
2. Optimize the OpenCV.js performance by WASM threads:
This optimization is based on Web Worker API and SharedArrayBuffer, so it can be only used in browser.
3. Optimize the OpenCV.js performance by WASM SIMD:
Add WASM SIMD backend for OpenCV Universal Intrinsics. It's experimental as WASM SIMD is still in development.
* [GSoC2019]
1. use short license header
2. fix documentation node issue
3. remove the unused `hasSIMD128()` api
* [GSoC2019]
1. fix emscripten define
2. use fallback function for f16
* [GSoC2019]
Fix rebase issue
2019-09-24 16:30:42 +03:00
Alexander Alekhin
3cf9185159
Merge pull request #15538 from terfendail:wui_checkany
2019-09-23 15:52:24 +00:00
Maksim Shabunin
c8abf2ad14
backport: fixed warnings produced by clang-9.0.0
...
ea3dc78986
83fc27cb99
2019-09-23 18:36:18 +03:00
Alexander Alekhin
a74fe2ec01
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-09-20 21:11:49 +00:00
mipsopen-fwu
b1ea91d8bd
Merge pull request #15422 from mipsopen-fwu:msa-dev
...
* Added MSA implementations for mips platforms. Intrinsics for MSA and build scripts for MIPS platforms are added.
Signed-off-by: Fei Wu <fwu@wavecomp.com>
* Removed some unused code in mips.toolchain.cmake.
Signed-off-by: Fei Wu <fwu@wavecomp.com>
* Added comments for mips toolchain configuration and disabled compiling warnings for libpng.
Signed-off-by: Fei Wu <fwu@wavecomp.com>
* Fixed the build error of unsupported opcode 'pause' when mips isa_rev is less than 2.
Signed-off-by: Fei Wu <fwu@wavecomp.com>
* 1. Removed FP16 related item in MSA option defines in OpenCVCompilerOptimizations.cmake.
2. Use CV_CPU_COMPILE_MSA instead of __mips_msa for MSA feature check in cv_cpu_dispatch.h.
3. Removed hasSIMD128() in intrin_msa.hpp.
4. Define CPU_MSA as 150.
Signed-off-by: Fei Wu <fwu@wavecomp.com>
* 1. Removed unnecessary CV_SIMD128_64F guarding in intrin_msa.hpp.
2. Removed unnecessary CV_MSA related code block in dotProd_8u().
Signed-off-by: Fei Wu <fwu@wavecomp.com>
* 1. Defined CPU_MSA_FLAGS_ON as "-mmsa".
2. Removed CV_SIMD128_64F guardings in intrin_msa.hpp.
Signed-off-by: Fei Wu <fwu@wavecomp.com>
* Removed unused msa_mlal_u16() and msa_mlal_s16 from msa_macros.h.
Signed-off-by: Fei Wu <fwu@wavecomp.com>
2019-09-20 19:52:48 +03:00
Vitaly Tuzov
66842f5a18
Extended v_check_any/v_check_all universal intrinsics to support 64-bit integer
2019-09-19 18:31:31 +03:00
Alexander Alekhin
b4c5b50a3e
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-09-13 17:15:45 +00:00
Paul E. Murphy
b465c82696
core: workaround old gcc vec_mul{e,o} (Issue #15506 )
...
ISA 2.07 (aka POWER8) effectively extended the expanding multiply
operation to word types. The altivec intrinsics prior to gcc 8 did
not get the update.
Workaround this deficiency similar to other fixes.
This was exposed by commit 33fb253a66
which leverages the int -> dword expanding multiply.
This fixes Issue #15506
2019-09-12 09:54:02 -05:00
Alexander Alekhin
bea2c75452
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-09-05 14:29:22 +03:00
Alexander Alekhin
9ef5373776
Merge pull request #15435 from alalek:update_version_3.4.8-pre
2019-09-03 12:04:23 +00:00
Alexander Alekhin
abd7d63b74
Merge pull request #15424 from mshabunin:add-cmake-docs
2019-09-03 10:50:45 +00:00
Alexander Alekhin
3c62f3a8e3
pre: OpenCV 4.1.2 (version++)
2019-09-02 15:26:14 +03:00
Alexander Alekhin
0fda243a05
pre: OpenCV 3.4.8 (version++)
2019-09-02 14:20:49 +03:00
Alexander Alekhin
048ddbf9ee
Merge pull request #15339 from pmur:dotprod-32s-vsx
2019-08-31 11:16:04 +00:00
Maksim Shabunin
f3aab47f94
Assorted documentation fixes
...
* removed private flann documentation
* common tutorial images moved to doc/images
* grouping issues
2019-08-31 01:50:11 +03:00
Alexander Alekhin
1661e83939
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-08-30 16:22:42 +03:00
Alexander Alekhin
f224d740a3
Merge pull request #15414 from kuzi117:instr
2019-08-30 12:03:19 +00:00
Braedy Kuzma
9bf8b496d6
Use commonly supported instruction mnemonic.
2019-08-29 10:00:40 -06:00
Braedy Kuzma
d4120dd2fe
Disambiguate vecpopcnt for (u)dword2.
2019-08-29 09:54:56 -06:00
Alexander Alekhin
ca7640e10f
Merge pull request #15401 from ChipKerchner:vectorReduceInt8Bug
2019-08-27 19:59:39 +00:00
ChipKerchner
70b883cfeb
Fix macro bug with v_reduce_min and v_reduce_max for chars in VSX
2019-08-27 11:38:53 -05:00
Vitaly Tuzov
1b40528e1a
Fix for AVX2 implementation of v_check_any(), v_check_all() intrinsics
2019-08-27 14:31:23 +03:00
Alexander Alekhin
a7b954f655
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-08-23 19:24:37 +03:00
Alexander Alekhin
d7409604b5
core: handle empty Mat in Mat_ assignment operators
2019-08-23 16:54:24 +03:00
Alexander Alekhin
8a0b93bc4d
core: update fastmath.hpp
2019-08-22 16:43:07 +03:00
Zyrin
869ea22f34
Use std::move in Mat_<T> move constructors
2019-08-21 11:12:00 +02:00
Zyrin
8ef8088686
Fix stack overflow on gcc with c++17 ( #15343 )
2019-08-21 10:57:03 +02:00
Paul E. Murphy
33fb253a66
core: vectorize dotProd_32s
...
Use 4x FMA chains to sum on SIMD 128 FP64 targets. On
x86 this showed about 1.4x improvement.
For PPC, do a full multiply (32x32->64b), convert to DP
then accumulate. This may be slightly less precise for
some inputs. But is 1.5x faster than the above which
is about 1.5x than the FMA above for ~2.5x speedup.
2019-08-20 15:28:36 -05:00
Alexander Alekhin
19a4b51371
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-08-16 18:48:08 +03:00
luz.paz
fcc7d8dd4e
Fix modules/ typos
...
Found using `codespell -q 3 -S ./3rdparty -L activ,amin,ang,atleast,childs,dof,endwhile,halfs,hist,iff,nd,od,uint`
backporting of commit: ec43292e1e
2019-08-16 17:34:29 +03:00
luz.paz
ec43292e1e
Fix modules/ typos
...
Found using `codespell -q 3 -S ./3rdparty -L activ,amin,ang,atleast,childs,dof,endwhile,halfs,hist,iff,nd,od,uint`
2019-08-15 18:02:09 -04:00
Alexander Alekhin
13ecd5bb25
Merge pull request #15122 from pmur:fast-math-improvements
2019-08-14 19:28:05 +00:00
Alexander Alekhin
32772a5436
3.4: backported changes from 'master' branch
2019-08-14 16:36:08 +03:00
Alexander Alekhin
2ad0487cec
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-08-13 18:32:29 +00:00
Paul E. Murphy
f38a61c66d
fast_math: implement optimized PPC routines
...
Implement cvRound using inline asm. No compiler support
exists today to properly optimize this. This results in
about a 4x speedup over the default rounding. Likewise,
simplify the growing number of rounding function overloads.
For P9 enabled targets, utilize the classification
testing instruction to test for Inf/Nan values. Operation
speedup is about 1.2x for FP32, and 1.5x for FP64 operands.
For P8 targets, fallback to the GCC nan inline. It provides
a 1.1/1.4x improvement for FP32/FP64 arguments.
2019-08-07 15:01:18 -05:00
Paul E. Murphy
3f92bcc11a
fast_math: selectively use GCC rounding builtins when available
...
Add a new macro definition OPENCV_USE_FASTMATH_GCC_BUILTINS to enable
usage of GCC inline math functions, if available and requested by the
user.
Likewise, enable it for POWER. This is nearly always a substantial
improvement over using integer manipulation as most operations can
be done in several instructions with no branching. The result is a
1.5-1.8x speedup in the ceil/floor operations.
1. As tested with AT 12.0-1 (GCC 8.3.1) compiler on P9 LE.
2019-08-07 15:01:18 -05:00
Alexander Alekhin
821f17d666
Merge pull request #15235 from pmur:vsx-v_signmask-vbpermq
2019-08-06 20:09:22 +00:00
Paul E. Murphy
1031b7f4bc
hal: vsx: further optimize v_signmask
...
Use the quadword bit permutation instruction to creatively move
the sign bits to create the mask. Note that values above 127 will
result in 0.
2019-08-05 09:00:22 -05:00
Alexander Alekhin
3debb98805
Merge tag '4.1.1'
2019-07-26 03:34:59 +00:00
Alexander Alekhin
ddbd10c001
release: OpenCV 4.1.1
...
OpenCV 4.1.1
2019-07-26 03:24:45 +00:00
Alexander Alekhin
0cf479dd5c
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-07-25 19:21:47 +00:00
Alexander Alekhin
2693ed9b22
Merge tag '3.4.7'
2019-07-25 19:19:49 +00:00
Alexander Alekhin
4a7ca5a291
OpenCV version++ (3.4.7)
...
OpenCV 3.4.7
2019-07-25 19:01:19 +00:00
Alexander Alekhin
6158bd2afa
Merge pull request #15103 from alalek:simd_intrinsics_in_user_code
2019-07-25 11:36:36 +00:00
Hugo Lindström
2ee00e7f7d
Merge pull request #15059 from hugolm84:improved-support-for-wince
...
* Improve support for Windows Embedded Compact
* Remove redundant set(WINCE true) and format CMake
2019-07-24 23:12:09 +03:00
Alexander Alekhin
8bac8b513c
core: support SIMD intrinsics in user code
2019-07-19 20:33:32 +00:00
Alexander Alekhin
002904e445
Merge pull request #15050 from alalek:core_fix_base64_packed_struct
2019-07-18 19:07:06 +00:00
Alexander Alekhin
2df7736562
Merge branch 'core_fix_base64_packed_struct'
2019-07-16 15:35:43 +03:00
Alexander Alekhin
4ea8526e9f
core(persistence): fix writeRaw() / readRaw() struct support
...
- writeRaw(): support structs
- readRaw(): 'len' is buffer limit in bytes (documentation is fixed)
2019-07-16 14:03:39 +03:00
Hugo Lindström
245c256b1c
Support compiliation for <=VS13
2019-07-12 19:02:36 +02:00
Alexander Alekhin
097d81363b
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-07-02 21:17:45 +00:00
Alexander Alekhin
69560588fe
Merge pull request #14953 from alalek:core_static_analysis_eval_expr
2019-07-02 09:44:29 +00:00
Vitaly Tuzov
9befb7a1d7
Merge pull request #14916 from terfendail:wsignmask_deprecated
...
* Avoid using v_signmask universal intrinsic and mark it as deprecated
* Renamed v_find_negative to v_scan_forward
2019-07-01 19:53:51 +03:00
Alexander Alekhin
44836c7f78
core: evaluate CV_Error() parameters during static scans
2019-07-01 18:17:03 +03:00
Stefan Brüns
e9a2e665b2
Explicitly default operator= for Vec<T, n>
...
Due to the explicitly declared copy constructor Vec<T, n>::Vec(Vec <T,n>&)
GCC 9 warns if there is no assignment operator, as having one typically
requires the other (rule-of-three, constructor/desctructor/assginment).
As the values are just a plain array the default assignment operator does
the right thing. Tell the compiler explicitly to default it.
Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
2019-06-29 22:11:00 +02:00
Alexander Alekhin
6fdce865b8
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-06-29 17:27:48 +00:00
Rostislav Vasilikhin
f2f600f807
fixed multi instrumentations
2019-06-27 01:17:26 +03:00
Alexander Alekhin
b95e93c20a
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-06-26 20:19:04 +00:00
Alexander Alekhin
e8a703a71d
core(intrin): v_load_low() workaround for aarch64+clang
2019-06-25 17:29:04 +03:00
Alexander Alekhin
b58b2c5ae8
Merge pull request #14878 from JoeHowse:4.1.0-patches
2019-06-24 18:29:30 +00:00
Alexander Alekhin
442bc80cd7
pre: OpenCV 4.1.1 (version++)
2019-06-21 19:18:50 +03:00
Alexander Alekhin
f33f88de31
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-06-21 17:27:14 +03:00
Alexander Alekhin
779f59da6b
pre: OpenCV 3.4.7 (version++)
2019-06-21 16:57:17 +03:00
Alexander Alekhin
aa6c66aa54
Merge pull request #14848 from alalek:build_warnings_avx512
2019-06-21 13:53:52 +00:00
Alexander Alekhin
5ac55fc132
core: eliminate AVX512 build warnings
...
from MSVS2017 and GCC8 -O1 mode
2019-06-20 20:00:09 +03:00
Joe Howse
729848caeb
core: revise syntax to support Visual C++ 2013
2019-06-20 13:57:17 -03:00
Alexander Alekhin
681e0323f2
core: backport toLowerCase()/toUpperCase()
2019-06-20 17:48:18 +03:00
Alexander Alekhin
7b099e0fe2
videoio: plugins support on Win32
2019-06-16 15:25:25 +00:00
Alexander Alekhin
66d7956e67
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-06-15 16:25:11 +00:00
Vitaly Tuzov
a29e59a770
Rename parameters in AVX512 implementation of v_load_deinterleave and v_store_interleave
2019-06-14 14:16:30 +03:00
Alexander Alekhin
81fad9e247
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-06-11 20:43:40 +00:00
Vitaly Tuzov
d2aadabc5e
Merge pull request #14743 from terfendail:wui512_fixvswarn
...
Fix for MSVS2019 build warnings (#14743 )
* AVX512 arch support for MSVS
* Fix for MSVS2019 build warnings: updated integral() AVX512 implementation
* Fix for MSVS2019 build warnings: reworked v_rotate_right AVX512 implementation
* fix indentation
2019-06-11 23:07:39 +03:00
Alexander Alekhin
11b020b9f9
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-06-10 19:05:28 +00:00
Alexander Alekhin
52644f067e
Merge pull request #14764 from alalek:core_intrin_drop_hasSIMD_checks
2019-06-09 17:11:45 +00:00
Alexander Alekhin
6d916c5bb4
Merge pull request #14440 from alalek:async_array
2019-06-08 20:57:15 +00:00
Alexander Alekhin
1e9ad5476d
core(intrin): drop hasSIMD128 checks
...
- use compile-time checks instead (`#if CV_SIMD128`)
- runtime checks are useless
2019-06-08 19:20:20 +00:00
Alexander Alekhin
ddcf388270
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-06-07 19:02:55 +03:00
Alexander Alekhin
4a8fd71a2e
core: fix visibility handling
2019-06-07 07:23:15 +00:00
Alexander Alekhin
aab9ef4290
Merge pull request #14667 from asashour:javadoc
2019-06-06 10:57:39 +00:00
Alexander Alekhin
f3de2b4be7
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-06-05 19:11:52 +03:00
Ahmed Ashour
5c56b8ce92
java: generated code to have javadoc
2019-06-05 12:44:03 +02:00
Ahmed Ashour
1aca1d582e
Fix some typos
2019-06-05 12:24:13 +02:00
Vitaly Tuzov
3b015dfc7d
Merge pull request #14210 from terfendail:wui_512
...
AVX512 wide universal intrinsics (#14210 )
* Added implementation of 512-bit wide universal intrinsics(WIP)
* Added implementation of 512-bit wide universal intrinsics: implemented WUI vector types(WIP)
* Added implementation of 512-bit wide universal intrinsics(WIP): implemented load/store
* Added implementation of 512-bit wide universal intrinsics(WIP): implemented fp16 load/store
* Added implementation of 512-bit wide universal intrinsics(WIP): implemented recombine and zip, implemented non-saturating and saturating arithmetics
* Added implementation of 512-bit wide universal intrinsics(WIP): implemented bit operations
* Added implementation of 512-bit wide universal intrinsics(WIP): implemented comparisons
* Added implementation of 512-bit wide universal intrinsics(WIP): implemented lane shifts and reduction
* Added implementation of 512-bit wide universal intrinsics(WIP): implemented absolute values
* Added implementation of 512-bit wide universal intrinsics(WIP): implemented rounding and cast to float
* Added implementation of 512-bit wide universal intrinsics(WIP): implemented LUT
* Added implementation of 512-bit wide universal intrinsics(WIP): implemented type extension/narrowing and matrix operations
* Added implementation of 512-bit wide universal intrinsics(WIP): implemented load_deinterleave for 2 and 3 channels images
* Added implementation of 512-bit wide universal intrinsics(WIP): reimplemented load_deinterleave for 2- and implemented for 4-channel images
* Added implementation of 512-bit wide universal intrinsics(WIP): implemented store_interleave
* Added implementation of 512-bit wide universal intrinsics(WIP): implemented signmask and checks
* Added implementation of 512-bit wide universal intrinsics(WIP): build fixes
* Added implementation of 512-bit wide universal intrinsics(WIP): reimplemented popcount in case AVX512_BITALG is unavailable
* Added implementation of 512-bit wide universal intrinsics(WIP): reimplemented zip
* Added implementation of 512-bit wide universal intrinsics(WIP): reimplemented rotate for s8 and s16
* Added implementation of 512-bit wide universal intrinsics(WIP): reimplemented interleave/deinterleave for s8 and s16
* Added implementation of 512-bit wide universal intrinsics(WIP): updated v512_set macros
* Added implementation of 512-bit wide universal intrinsics(WIP): fix for GCC wrong _mm512_abs_pd definition
* Added implementation of 512-bit wide universal intrinsics(WIP): reworked v_zip to avoid AVX512_VBMI intrinsics
* Added implementation of 512-bit wide universal intrinsics(WIP): reworked v_invsqrt to avoid AVX512_ER intrinsics
* Added implementation of 512-bit wide universal intrinsics(WIP): reworked v_rotate, v_popcount and interleave/deinterleave for U8 to avoid AVX512_VBMI intrinsics
* Added implementation of 512-bit wide universal intrinsics(WIP): fixed integral image SIMD part
* Added implementation of 512-bit wide universal intrinsics(WIP): fixed warnings
* Added implementation of 512-bit wide universal intrinsics(WIP): fixed load_deinterleave for u8 and u16
* Added implementation of 512-bit wide universal intrinsics(WIP): fixed v_invsqrt accuracy for f64
* Added implementation of 512-bit wide universal intrinsics(WIP): fixed interleave/deinterleave for u32 and u64
* Added implementation of 512-bit wide universal intrinsics(WIP): fixed interleave_pairs, interleave_quads and pack_triplets
* Added implementation of 512-bit wide universal intrinsics(WIP): fixed rotate_left
* Added implementation of 512-bit wide universal intrinsics(WIP): fixed rotate_left/right, part 2
* Added implementation of 512-bit wide universal intrinsics(WIP): fixed 512-wide universal intrinsics based resize
* Added implementation of 512-bit wide universal intrinsics(WIP): fixed findContours by avoiding use of uint64 dependent 512-wide v_signmask()
* Added implementation of 512-bit wide universal intrinsics(WIP): fixed trailing whitespaces
* Added implementation of 512-bit wide universal intrinsics(WIP): reworked specific intrinsic sets dependent parts to check availability of intrinsics based on CPU feature group defines
* Added implementation of 512-bit wide universal intrinsics(WIP):Updated AVX512 implementation of v_popcount to avoid AVX512VPOPCNTDQ intrinsics if unavailable.
* Added implementation of 512-bit wide universal intrinsics(WIP): Fixed universal intrinsics data initialisation, v_mul_wrap, v_floor, v_ceil and v_signmask.
* Added implementation of 512-bit wide universal intrinsics(WIP): Removed hasSIMD512()
* Added implementation of 512-bit wide universal intrinsics(WIP): Fixes for gcc build
* Added implementation of 512-bit wide universal intrinsics(WIP): Reworked v_signmask, v_check_any() and v_check_all() implementation.
2019-06-03 18:05:35 +03:00
Vitaly Tuzov
723165f878
fix for AVX2 version of v_reduce_min intrinsic
2019-05-31 16:14:54 +03:00
Alexander Alekhin
43467a2ac7
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-05-28 18:29:48 +00:00
Vitaly Tuzov
f0fb91f2d4
Fixed v_signmask implementation for AVX2, updated universal intrinsics tests.
2019-05-24 19:34:54 +03:00
Alexander Alekhin
166ecaeda8
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-05-23 19:50:20 +03:00
Alexander Alekhin
de977cc9c8
Merge pull request #14474 from alalek:ocl_kernel_args_variadic
2019-05-20 18:18:02 +00:00
Alexander Alekhin
9340af1a8a
core: Async API / AsyncArray
2019-05-18 19:32:23 +00:00
catree
b5e2ec4ea4
Fix typo in NormTypes documentation.
2019-05-16 19:22:41 +02:00
Alexander Alekhin
9003b60d65
Merge pull request #14567 from alalek:core_drop_ostream_string_overload
2019-05-16 11:32:13 +00:00
Alexander Alekhin
e21262deba
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-05-16 04:40:39 +00:00
Vitaly Tuzov
7a55f2af3b
Updated AVX2 implementation of v_popcount for u8.
2019-05-15 19:39:25 +03:00
Alexander Alekhin
b8f9076de0
core: drop 'operator << (ostream, String)' overload
...
'cv::String' is 'std::string' in OpenCV 4.x
2019-05-15 14:00:02 +03:00
Vitaly Tuzov
1220dd4877
Updated v_popcount description, reference implementation and test.
2019-05-14 18:59:40 +03:00
Vitaly Tuzov
96ab78dc4f
Reworked v_popcount implementation to provide number of bits in a single lane
2019-05-14 18:59:38 +03:00