1. 03 Jun, 2019 1 commit
    • Vitaly Tuzov's avatar
      Merge pull request #14210 from terfendail:wui_512 · 3b015dfc
      Vitaly Tuzov authored
      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.
      3b015dfc
  2. 31 May, 2019 1 commit
  3. 24 May, 2019 1 commit
  4. 18 May, 2019 1 commit
  5. 14 May, 2019 1 commit
  6. 24 Apr, 2019 1 commit
  7. 22 Apr, 2019 1 commit
  8. 21 Apr, 2019 1 commit
    • Ryan Wong's avatar
      Merge pull request #13909 from kinchungwong:logging_20190220 · 8af96248
      Ryan Wong authored
      OE-11 Logging revamp (#13909)
      
      * Initial commit for log tag support.
      
      Part of #11003, incomplete. Should pass build.
      
      Moved LogLevel enum to logger.defines.hpp
      
      LogTag struct used to convey both name and log level threshold as
      one argument to the new logging macro. See logtag.hpp file, and
      CV_LOG_WITH_TAG macro.
      
      Global log level is now associated with a global log tag, when a
      logging statement doesn't specify any log tag. See getLogLevel and
      getGlobalLogTag functions.
      
      A macro CV_LOGTAG_FALLBACK is allowed to be re-defined by other modules
      or compilation units, internally, so that logging statements inside
      that unit that specify NULL as tag will fall back to the re-defined tag.
      
      Line-of-code information (file name, line number, function name),
      together with tag name, are passed into the new log message sink.
      See writeLogMessageEx function.
      
      Fixed old incorrect CV_LOG_VERBOSE usage in ocl4dnn_conv_spatial.cpp.
      
      * Implemented tag-based log filtering
      
      Added LogTagManager. This is an initial version, using standard C++
      approach as much as possible, to allow easier code review. Will
      optimize later.
      
      A workaround for all static dynamic initialization issues is
      implemented. Refer to code comments.
      
      * Added LogTagConfigParser.
      
      Note: new code does not fully handle old log config parsing behavior.
      
      * Fix log tag config vs registering ordering issue.
      
      * Started testing LogTagConfigParser, incomplete.
      
      The intention of this commit is to illustrate the capabilities of
      the current design of LogTagConfigParser.
      
      The test contained in this commit is not complete. Also, design changes
      may require throwing away this commit and rewriting test code from
      scratch.
      
      Does not test whitespace segmentation (multiple tags on the config);
      will do in next commit.
      
      * Added CV_LOGTAG_EXPAND_NAME macro
      
      This macro allows to be re-defined locally in other compilation units
      to apply a prefix to whatever argument is passed as the "tag" argument
      into CV_LOG_WITH_TAG. The default definition in logger.hpp does not
      modify the argument. It is recommended to include the address-of
      operator (ampersand) when re-defined locally.
      
      * Added a few tests for LogTagManager, some fail.
      
      See test_logtagmanager.cpp
      Failed tests are: non-global ("something"), setting level by name-part
      (first part or any part) has no effect at all.
      
      * LogTagManagerTests substring non-confusion tests
      
      * Fix major bugs in LogTagManager
      
      The code change is intended to approximate the spec documented in
      https://gist.github.com/kinchungwong/ec25bc1eba99142e0be4509b0f67d0c6
      
      Refer to test suite in test_logtagmanager.cpp
      
      Filter test result in "opencv_test_core" ...
      with gtest_filter "LogTagManager*"
      
      To see the test code that finds the bugs, refer to original commits
      (before rebase; might be gone)
      
      .. f3451208 (2019-03-03T19:45:17Z)
      .... LogTagManagerTests substring non-confusion tests
      
      .. 1b848f5f (2019-03-03T01:55:18Z)
      .... Added a few tests for LogTagManager, some fail.
      
      * Added LogTagManagerNamePartNonConfusionTest.
      
      See test_logtagmanager.cpp in modules/core/test.
      
      * Added LogTagAuto for auto registration in ctor
      
      * Rewritten LogTagManager to resolve issues.
      
      * Resolves code review issues around 2019-04-10
      
      LogTagConfigParser::parseLogLevel - as part of resolving code review
      issues, this function is rewritten to simplify control flow and to
      improve conformance with legacy usage (for string values "OFF",
      "DISABLED", and "WARNINGS").
      8af96248
  9. 27 Mar, 2019 1 commit
    • Alexander Alekhin's avatar
      Merge pull request #14162 from alalek:eliminate_coverity_scan_issues · d6b82dcd
      Alexander Alekhin authored
      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
      d6b82dcd
  10. 19 Mar, 2019 1 commit
  11. 18 Mar, 2019 1 commit
  12. 05 Mar, 2019 1 commit
  13. 28 Feb, 2019 1 commit
  14. 30 Jan, 2019 1 commit
  15. 18 Jan, 2019 1 commit
  16. 17 Jan, 2019 1 commit
  17. 04 Jan, 2019 1 commit
    • Lee Jaehwan's avatar
      Merge pull request #13544 from eightco:bugfix · 71aee662
      Lee Jaehwan authored
      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
      71aee662
  18. 25 Dec, 2018 1 commit
  19. 16 Dec, 2018 1 commit
  20. 19 Nov, 2018 1 commit
  21. 16 Nov, 2018 1 commit
  22. 12 Nov, 2018 2 commits
  23. 10 Nov, 2018 1 commit
  24. 09 Nov, 2018 1 commit
  25. 08 Nov, 2018 1 commit
  26. 01 Nov, 2018 1 commit
    • Vadim Pisarevsky's avatar
      completely new C++ persistence implementation (#13011) · 0f622206
      Vadim Pisarevsky authored
      * integrated the new C++ persistence; removed old persistence; most of OpenCV compiles fine! the tests have not been run yet
      
      * fixed multiple bugs in the new C++ persistence
      
      * fixed raw size of the parsed empty sequences
      
      * [temporarily] excluded obsolete applications traincascade and createsamples from build
      
      * fixed several compiler warnings and multiple test failures
      
      * undo changes in cocoa window rendering (that was fixed in another PR)
      
      * fixed more compile warnings and the remaining test failures (hopefully)
      
      * trying to fix the last little warning
      0f622206
  27. 30 Oct, 2018 1 commit
    • Sayed Adel's avatar
      core: reimplement SIMD arithmetic, logic and comparison operations into wide universal intrinsics · 93ffebc2
      Sayed Adel authored
        - 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
      93ffebc2
  28. 24 Oct, 2018 1 commit
    • maver1's avatar
      Merge pull request #12877 from maver1:3.4 · e397434c
      maver1 authored
      * 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()
      e397434c
  29. 16 Oct, 2018 1 commit
    • Michał Janiszewski's avatar
      Catch exceptions by const-reference · c8e6ce30
      Michał Janiszewski authored
      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.
      c8e6ce30
  30. 15 Oct, 2018 1 commit
  31. 14 Oct, 2018 2 commits
  32. 11 Oct, 2018 2 commits
    • Sayed Adel's avatar
      Change behaviour of 16-bit multiply operator · 5771fd69
      Sayed Adel authored
        - 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
      5771fd69
    • Vitaly Tuzov's avatar
  33. 27 Sep, 2018 1 commit
  34. 26 Sep, 2018 1 commit
  35. 24 Sep, 2018 2 commits
  36. 21 Sep, 2018 1 commit
    • Hamdi Sahloul's avatar
      Merge pull request #12310 from cv3d:chunks/enum_interface · ef5579dc
      Hamdi Sahloul authored
      * Cleanup macros and enable expansion of `__VA_ARGS__` for Visual Studio
      
      * Macros for enum-arguments backwards compatibility
      
      * Convert struct Param to enum struct
      
      * Enabled ParamType.type for enum types
      
      * Enabled `cv.read` and `cv.write` for enum types
      
      * Rename unnamed enum to AAKAZE.DescriptorType
      
      * Rename unnamed enum to AccessFlag
      
      * Rename unnamed enum to AgastFeatureDetector.DetectorType
      
      * Convert struct DrawMatchesFlags to enum struct
      
      * Rename unnamed enum to FastFeatureDetector.DetectorType
      
      * Rename unnamed enum to Formatter.FormatType
      
      * Rename unnamed enum to HOGDescriptor.HistogramNormType
      
      * Rename unnamed enum to DescriptorMatcher.MatcherType
      
      * Rename unnamed enum to KAZE.DiffusivityType
      
      * Rename unnamed enum to ORB.ScoreType
      
      * Rename unnamed enum to UMatData.MemoryFlag
      
      * Rename unnamed enum to _InputArray.KindFlag
      
      * Rename unnamed enum to _OutputArray.DepthMask
      
      * Convert normType enums to static const NormTypes
      
      * Avoid conflicts with ElemType
      
      * Rename unnamed enum to DescriptorStorageFormat
      ef5579dc