Commit Graph

643 Commits

Author SHA1 Message Date
Alexander Alekhin
d6b82dcd65
Merge pull request #14162 from alalek:eliminate_coverity_scan_issues
core: eliminate coverity scan issues (#14162)

* core(hal): avoid using of r,g,b,a parameters in interleave/deinterleave

- static analysis tools blame on possible parameters reordering
- align AVX parameters with corresponding SSE/NEO/VSX/cpp code

* core: avoid "i,j" parameters in Matx methods

- static analysis tools blame on possible parameters reordering

* core: resolve coverity scan issues
2019-03-27 15:48:00 +03:00
Alexander Alekhin
93a402d0f2 core: fix Core_EigenNonSymmetric.convergence test 2019-03-19 15:18:43 +03:00
Alexander Alekhin
a7c4ee9ae1 core: add iterations limit check in eigenNonSymmetric() 2019-03-18 17:49:17 +03:00
Alexander Alekhin
7366eebebb core: fix condition in OutputArray::create(allowTransposed=True) 2019-03-05 16:26:59 +03:00
berak
20afae5a14 core: fix mat matx multiplication 2019-02-28 14:22:54 +01:00
Alexander Alekhin
dc5e69b4d4 Revert "Merge pull request #13586 from eightco:Core_bugfix3"
This reverts commit 3721c8bb06
except changes in modules/dnn/test/test_tf_importer.cpp
2019-01-18 18:29:12 +03:00
Lee Jaehwan
3721c8bb06 Merge pull request #13586 from eightco:Core_bugfix3
* Add Operator override for multi-channel Mat with literal constant.

* simple test

* Operator overloading channel constraint for primitive types

* fix some test for #13586
2019-01-17 17:23:09 +03:00
Lee Jaehwan
71aee662bd Merge pull request #13544 from eightco:bugfix
Fix a bug in cv :: merge when array of 3-channel mat is input (#13544)

* Mat merge function bug fix - Bug fix of merge function of 3-channel vector <Mat> of 3 or 4 matrices

* Add Core_merge test for opencv#13544

* fixups
2019-01-04 15:10:50 +03:00
Vitaly Tuzov
cd169941f2 Added test for addition of Mat and Matx 2018-12-25 19:22:04 +03:00
Alexander Alekhin
f605898bae core: fix eigen2cv() - don't change fixed type of 'dst' 2018-12-16 06:43:08 +00:00
1over
b6367f5821 fixed operator- for Rect 2018-11-20 00:48:17 +01:00
Alexander Alekhin
2fa9bd221d core: add utils::findDataFile() / samples::findFile() 2018-11-16 00:25:06 +00:00
Dmitry Kurtaev
6c76c8f881 Add a test for FileNode::keys() 2018-11-12 13:38:18 +03:00
Alexander Alekhin
96ee83898d core(test): extend divideByZero test
to verify SIMD code path
2018-11-10 22:17:19 +00:00
Alexander Alekhin
596ada51f3 Merge pull request #13080 from alalek:issue_13078 2018-11-09 13:20:27 +00:00
Alexander Alekhin
5059523937 core: fix processing of vector-rows 2018-11-08 20:04:22 +03:00
Sayed Adel
93ffebc273 core: reimplement SIMD arithmetic, logic and comparison operations into wide universal intrinsics
- initialize arithmetic dispatcher
  - add new universal intrinsic v_absdiffs
  - add new universal intrinsic v_pack_b
  - add accumulate version of universal intrinsic v_round
  - fix sse/avx2:uint8 multiplication overflow
  - reimplement arithmetic, logic and comparison operations into wide universal intrinsics
    with full support for all types
  - reimplement IPP arithmetic, logic and comparison operations in a sperate file arithm_ipp.hpp
  - avoid scalar multiplication if scaling factor eq 1 and use integer multiplication
  - move C arithmetic operations to precomp.hpp and delete [arithm_simd|arithm_core].hpp
  - add compatibility with new opencv4 divide policy
2018-10-30 12:48:31 +02:00
maver1
e397434cb6 Merge pull request #12877 from maver1:3.4
* Updated ICV packages and IPP integration

* core(test): minMaxIdx IPP regression test

* core(ipp): workaround minMaxIdx problem

* core(ipp): workaround meanStdDev() CV_32FC3 buffer overrun

* Returned semicolon after CV_INSTRUMENT_REGION_IPP()
2018-10-24 15:02:53 +03:00
Michał Janiszewski
c8e6ce304f Catch exceptions by const-reference
Exceptions caught by value incur needless cost in C++, most of them can
be caught by const-reference, especially as nearly none are actually
used. This could allow compiler generate a slightly more efficient code.
2018-10-16 22:43:54 +02:00
Alexander Alekhin
72eccb7694 Merge pull request #12825 from alalek:issue_8413_3.4 2018-10-15 14:23:21 +00:00
Alexander Alekhin
1cc3f7abbb Merge pull request #12516 from seiko2plus:changeUnvMultiply16 2018-10-15 12:07:40 +00:00
Alexander Alekhin
5677a683a5 core(test): zero values divide test (3.x) 2018-10-14 02:23:17 +00:00
Sayed Adel
5771fd693d Change behaviour of 16-bit multiply operator
- redefine 16-bit multiply operator to perform saturating multiply
    instead of non-saturating multiply
  - implement 8-bit multiply operator to perform saturating multiply
  - implement v_mul_wrap() for 8-bit, 16-bit non-saturating multiply
  - improve performance of v_mul_hi() for VSX
  - update intrin tests with new changes
  - replace unv 16-bit multiplication operator with v_mul_wrap due behavior changes

  - Several improvements depend on vpisarev review

    * initial forward declarations for universal intrinsics
    * move emulating SSE intrinsics into separate file
    * implement v_mul_expand for 8-bit
    * reimplement saturating multiply using v_mul_expand + v_pack
    * map v_expand, v_load_expand, v_load_expand_q to sse4.1
    * fix overflow avx2::v_pack(uint32)
    * implement two universal intrinsics v_expand_low and v_expand_high
2018-10-11 04:35:39 +02:00
Vitaly Tuzov
1ff11c84ab Fixed meanStdDev() implementation for the case input matrix has more than 4 channels 2018-10-11 04:30:33 +02:00
Alexander Alekhin
48e8e76a34 fix build warnings 2018-09-27 16:31:31 +03:00
Dmitry Kurtaev
24ab751547 Merge pull request #12565 from dkurt:dnn_non_intel_gpu
* Remove isIntel check from deep learning layers

* Remove fp16->fp32 fallbacks where it's not necessary

* Fix Kernel::run to prevent localsize > globalsize
2018-09-26 16:27:00 +03:00
Vitaly Tuzov
2f929376ec Fixed meanStdDev() implementation for the case input matrix has more than 4 channels 2018-09-10 20:05:45 +03:00
Hamdi Sahloul
a39e0daacf Utilize CV_UNUSED macro 2018-09-07 20:33:52 +09:00
Alexander Alekhin
f1f15841d7 Merge pull request #11630 from alalek:c_api_eliminate_constructors 2018-09-06 20:07:16 +00:00
Vadim Pisarevsky
80b62a41c6 Merge pull request #12411 from vpisarev:wide_convert
* rewrote Mat::convertTo() and convertScaleAbs() to wide universal intrinsics; added always-available and SIMD-optimized FP16<=>FP32 conversion

* fixed compile warnings

* fix some more compile errors

* slightly relaxed accuracy threshold for int->float conversion (since we now do it using single-precision arithmetics, not double-precision)

* fixed compile errors on iOS, Android and in the baseline C++ version (intrin_cpp.hpp)

* trying to fix ARM-neon builds

* trying to fix ARM-neon builds

* trying to fix ARM-neon builds

* trying to fix ARM-neon builds
2018-09-06 19:36:59 +03:00
Alexander Alekhin
8a3c394d6a don't use constructors for C API structures 2018-09-06 14:34:16 +03:00
Alexander Alekhin
a0f86479e0 core: wrap custom types via _RawArray (raw() call)
- support passing of `std::vector<KeyPoint>` via InputArray
2018-09-03 18:41:48 +00:00
Alexander Alekhin
70a27c7dd6 core: add solveLP type checks for output
to forbid Mat1f

Checks are not reliable: empty uninitialized `cv::Mat` has `CV_8UC1` type
2018-09-01 14:51:44 +00:00
Alexander Alekhin
e86287d8ae cleanup: IPP Async (IPP_A)
except header file with conversion routines (will be removed in OpenCV 4.0)
2018-08-30 18:53:07 +03:00
Alexander Alekhin
ff2eface19 Merge pull request #12126 from alalek:reproducer_12121 2018-08-24 08:08:17 +00:00
Alexander Alekhin
67d46dfc6c core(intrin): restrict FP16 operations
Intrinsics must be effective, so don't declare FP16 type/operations if there is no native support.

- CV_FP16: supports load/store into/from float32
- CV_SIMD_FP16: declares FP16 types and native FP16 operations
2018-08-20 19:24:33 +03:00
Alexander Alekhin
7453a6938a core(test): extra tests/fixes for merge/split (#12171)
* core(test): merge hang test

* core(merge/split): fix intrin optimization
2018-08-07 18:11:05 +03:00
Alexander Alekhin
f2e1710dd5 core(test): regression test for 12121 2018-08-01 19:42:54 +03:00
Alexander Alekhin
3f302cabb8 core(test): intrinsic tests for all dispatched CPU optimizations
- tests for both SIMD128 / SIMD256
- different dispatched + baseline(SIMD128) intrinsics
2018-08-01 13:50:42 +03:00
Sayed Adel
bb82cdc928 core:test Fix fp16 build if AVX2 sets as baseline 2018-07-31 10:02:20 +02:00
Alexander Alekhin
28d0e97c09 Merge pull request #12004 from mshabunin:more-asserts 2018-07-30 16:42:09 +00:00
Sayed Adel
6499263b41 core:test Expand hal_intrin tests to support SIMD256 2018-07-30 08:50:50 +02:00
Maksim Shabunin
1165fdd0f5 Added more strict checks for empty inputs to compare, meanStdDev and RNG::fill 2018-07-26 18:06:38 +03:00
Maksim Shabunin
cbb1e867e5 More issues found by static analysis 2018-07-24 16:04:42 +03:00
Alexander Alekhin
e526c4bfe4 core(test): remove verbose messages 2018-07-18 16:09:27 +03:00
Maksim Shabunin
c473718bc2 Check for empty Mat in compare, operator= and RNG::fill, fixed related tests 2018-07-17 17:50:50 +03:00
Vadim Pisarevsky
f058b5fb1e
Wide univ intrinsics (#11953)
* core:OE-27 prepare universal intrinsics to expand (#11022)

* core:OE-27 prepare universal intrinsics to expand (#11022)

* core: Add universal intrinsics for AVX2

* updated implementation of wide univ. intrinsics; converted several OpenCV HAL functions: sqrt, invsqrt, magnitude, phase, exp to the wide universal intrinsics.

* converted log to universal intrinsics; cleaned up the code a bit; added v_lut_deinterleave intrinsics.

* core: Add universal intrinsics for AVX2

* fixed multiple compile errors

* fixed many more compile errors and hopefully some test failures

* fixed some more compile errors

* temporarily disabled IPP to debug exp & log; hopefully fixed Doxygen complains

* fixed some more compile errors

* fixed v_store(short*, v_float16&) signatures

* trying to fix the test failures on Linux

* fixed some issues found by alalek

* restored IPP optimization after the patch with AVX wide intrinsics has been properly tested

* restored IPP optimization after the patch with AVX wide intrinsics has been properly tested
2018-07-16 18:57:24 +03:00
Alexander Alekhin
481829a81b Merge pull request #11957 from alalek:issue_11956 2018-07-16 15:54:34 +00:00
Alexander Alekhin
3c74fde349 core: eliminate 'if' logic from Matx::inv()/solve()
- 'if' logic is moved into templates.
- removed unnecessary cv::Mat objects creation.
- fixed inv() test (invA * A == eye)
- added more Matx tests to cover all defined template specializations
2018-07-13 20:09:01 +03:00
Alexander Alekhin
33b7028be2 core: use "explicit" for Matx() ctor 2018-07-12 19:50:56 +00:00