Commit Graph

422 Commits

Author SHA1 Message Date
Andrey Golubev
304e3ac12f G-API: fix Fluid reshape with unused nodes (Merge pull request #15115)
* G-API: fix fluid reshape with unused nodes

* Update test names

* Add FIXME for future improvement
2019-07-30 23:48:46 +03:00
Andrey Golubev
b10ec8ef8b Merge pull request #14985 from andrey-golubev:gapi_fix_ocl_umat
* G-API: fix GOCLExecutable issue with UMat lifetime

Add tests on initialized/uninitialized outputs for all
backends

* Use proper clean-up procedure for magazine

* Rename InitOut test and reduce tested sizes

* Enable output allocation test
2019-07-24 23:36:18 +03:00
Alexey Smirnov
8313209704 Merge pull request #14952 from smirnov-alexey:gapi_transform_macro_rework
G-API: GAPI_TRANSFORM internal functionality rework (#14952)

* Change internal pattern and substitute signatures and refactor tests

* Enhance GArrayU with type-checker function

Add a couple of new tests on GAPI_TRANSFORM
2019-07-24 23:29:52 +03:00
Anton Potapov
8936d55675 Fluid Internal Parallelism
- added ability to use custom implementation of "parallel for" function
2019-07-19 11:56:57 +03:00
Alexander Alekhin
e7bb0ecee0 gapi: fix build with unique_ptr
avoid generation of copy ctors with unique_ptr members
2019-07-18 14:08:42 +03:00
AsyaPronina
add1df4bcb Fixed issue happened during merge 2019-07-16 20:47:34 +03:00
Andrey Golubev
c9bd43c0f6 Merge pull request #14945 from andrey-golubev:delete_bool
G-API: clean up accuracy tests (#14945)

* Delete createOutputMatrices flag

Update the way compile args function is created

Fix instantiation suffix print function

* Update comment (NB)

* Make printable comparison functions

* Use defines instead of objects for compile args

* Remove custom printers, use operator<< overload

* Remove SAME_TYPE and use -1 instead

* Delete createOutputMatrices flag in new tests

* Fix GetParam() printed values

* Update Resize tests: use CompareF object

* Address code review feedback

* Add default cases for operator<< overloads

* change throw to GAPI_Assert
2019-07-16 19:04:18 +03:00
Andrey Golubev
c11423df1e Merge pull request #15012 from andrey-golubev:test_output
G-API: Add output allocation tests for backends (#15012)

* Add output tests for backends

* Fix large size test: output is in fact reallocated

* Use cv::Mat copies for reallocation tracking

* Separate LargeSizeWithCorrectSubmatrix test

* Rename backed output allocation tests

* Address code review feedback

Update test names

Add illustrative "expect (non-)empty" checks

Rename mat "copy" to mat reference

Add more pointer checks

* Add illustrative checks
2019-07-16 19:01:45 +03:00
Andrey Golubev
e629785a97 Merge pull request #15021 from andrey-golubev:gapi_fix_standalone_exports
* Fix G-API export specifier in standalone build

* Make dummy GAPI_EXPORTS in case of non-OpenCV builds

* Add old version under #if 0
2019-07-16 18:53:51 +03:00
Alexander Alekhin
3a2a74b655 Merge pull request #14968 from anton-potapov:fluid_internal_parallellism 2019-07-16 14:22:06 +00:00
Anton Potapov
97e88bd769 Fluid Internal Parallelism
- Added new graph compile time argument to specify multiple independent
ROIs (Tiles)
 - Added new "executable" with serial loop other user specified
ROIs(Tiles)
 - refactored graph traversal code into separate function to be called
once
 - added saturate cast to Fluid AddCsimple test kernel
2019-07-16 16:09:14 +03:00
Ruslan Garnov
ad49138fae Merge pull request #14917 from rgarnov:gapi_planar_kernels
G-API planar kernels (#14917)

* Added resizeP with tests

* NV12 planar filters

* fix warnings in ResizeP test

* fix out mat ocv warning

* sz_on - > sz rename

* cpu tests new signature

* try to fix resizeP test

* trailing spaces remove

* doxygen doc fixed

* doxygen minor fix

* more doxygen fixes

* Doxygen corrected and extended after review.
2019-07-04 18:19:09 +03:00
Andrey Golubev
2bf8793632 Merge pull request #14946 from andrey-golubev:obj_not_ref
G-API: Use object instead of reference in extended lifetime case (#14946)

* Use object instead of reference

* Make the object const
2019-07-02 19:03:45 +03:00
Alexander Alekhin
453466eb1a Merge pull request #14885 from anton-potapov:common_flow_explanatory_test_cases 2019-06-28 16:52:03 +00:00
Alexander Alekhin
49805f976a Merge pull request #14923 from andrey-golubev:imgproc_tests_update_clean 2019-06-28 16:01:32 +00:00
Andrey Golubev
1666195984 Merge pull request #14922 from andrey-golubev:operators_tests_update_clean
G-API: Align operators tests to new test model (#14922)

* Align operators tests to new test model

* Change init function in NotOperatorTest
2019-06-28 17:59:52 +03:00
Anton Potapov
3d345ca4c4 Async API for GAPI
- explanatory  test cases for common usage models
2019-06-28 17:40:00 +03:00
atalaman
8dd596b7ba Merge pull request #14892 from TolyaTalamanov:at/parameterized-render-tests
G-API: Parameterized render tests (#14892)

* Init commit

* Add mat size as test parameter

* Add test for text render

* Add test for rect render

* Add tests for line and circle

* Remove old render tests

* Init output mats

* Remove methods input arguments

* Add comment about data loss in BGR2NV12 conversion

* Add edge test cases

* Replace default color for out mats black -> white
2019-06-28 17:11:03 +03:00
Andrey Golubev
719912e46e Align imgproc tests to new model 2019-06-28 14:31:50 +03:00
Andrey Golubev
75c567b6ab Merge pull request #14757 from andrey-golubev:core_tests_update
G-API: Introduce new approach to write accuracy tests (#14757)

* G-API: Introduce new common accuracy test fixture

* Enable Range<> to Seq<> implicit conversion

* Fix shadowing parameters

* Update license headers

* Rename ALIGNED_TYPE to SAME_TYPE

* Move MkRange to tests

* Fix TODO(agolubev) in test instantiations

* Squash simple fixture declarations in one line

* Remove unused line

* Fix Windows issues with macro expansion

* Choose between 1 or 2 matrix initialization

* Redesign common class behavior

Use "views" for GetParam() provided by GTest
base class instead of doing segregation
(with copy!) of common and specific parameters:
request common or specific parameter directly
by index from GetParam()-returned parameters

* Refine user-level API and usage of new test model

* Fix -fpermissive errors

* Remove unnecessary init calls

* Replace GCompileArgs member variable with func ptr

* Rename initMatsRandN to make its behavior explicit

Rename initMatsRandN to initMatrixRandN to eliminate confusion:
initMatsRandN only initialized first matrix (similarly to
initMatrixRandU)

* Fix common of initNothing

* Update copyright dates in missed files

* Add check for specific parameters

* Fix coment stlye
2019-06-28 13:07:41 +03:00
atalaman
de60600126 Merge pull request #14820 from TolyaTalamanov:at/circle_and_line
G-API: Implement line and circle draw operations (#14820)

* Implement line and circle draw operations

* Fix comments to review
2019-06-24 17:37:32 +03:00
Alexander Alekhin
9cb239247d Merge pull request #14689 from anton-potapov:gapi_async_cacnel 2019-06-20 13:48:05 +00:00
Ruslan Garnov
7c0a9ff4c1 Added overload of contains<> for tuple 2019-06-20 14:40:14 +03:00
Anton Potapov
8d75bfae47 Cancelation support fo Async GAPI
-
2019-06-19 13:41:39 +03:00
Alexey Smirnov
7f9a9f2a09 Merge pull request #14648 from smirnov-alexey:as/gapi_transform
* Introduce GAPI_TRANSFORM initial interface

Comes along with simple tests and kernel package changes

* Fix documentation and adjust combine() function

* Fix stuff after rebasing on master

* Remove redundant functionality

* Refactoring according to review feedback provided

* Fixes according to review feedback

* Reconsider transformations return and fix a warning

* Fixes from code review

* Add a new simple test

* Cleanup, added tests on GScalar, GMatP, GArray
2019-06-17 16:26:28 +03:00
Ruslan Garnov
3df83dce7e Merge pull request #14741 from rgarnov:gapi_fix_includes
Changed quotes to brackets when including public includes (#14741)
2019-06-14 19:27:19 +03:00
atalaman
d3c0f4ef98 Merge pull request #14700 from TolyaTalamanov:at/cv_gapi_render
G-API: Render (#14700)

* cv::Render

Implement OCVRedner for BGR as input

* Support two plane cv::Render::run

* Snapshot

* Add RenderCreator

* text2Points

* Snapshot

* Refactoring tests

* Remove text2points

* Fix render input data type in tests

* Refactoring

* Fix headers
* Change struct fields name

* Fix headers

* Fix warnings

* Replace cv::Scalar -> cv::gapi::own::Scalar

* Add test

* PutText and rectangle case

* Fix comments to review

* Fix comments to review

* Fix comments to review

* Create render_priv.hpp
* Implement BGR2NV12
* Fix NV12 test

* Fix comments to review

* Add header for GAPI_Assert
2019-06-14 18:29:49 +03:00
Alexander Alekhin
b4d3ff378e Merge pull request #14720 from rgarnov:gapi_remove_lut3d 2019-06-11 16:24:54 +00:00
atalaman
1aefa6779f Merge pull request #14513 from TolyaTalamanov:at/color-convert-kernels
G-API: Implement color-convert kernels (#14513)

* Implement color-convert kernels

* Fix rgb2yuv422 reference version

* Fix comments to review

* Restore NV12toBGR in imgproc.hpp

* Add accuracy tests

* Fix doxygen

* Fix ref version yuv422

* Fix warnings

* Fix typos

* Fix simd version yuv422

* Fix warnings

* Fix compile error

* Fix warning

* Remove comment
2019-06-10 14:09:30 +03:00
Ruslan Garnov
25e4bce1a6 Removed LUT3D API entry 2019-06-04 17:13:21 +03:00
Alexey Smirnov
e329c84d5e Merge pull request #14684 from smirnov-alexey:as/convert2_test_extension
G-API: Add parameters alpha and beta in tests on ConvertTo kernel (#14684)

* Add parameters alpha and beta in tests on ConvertTo kernel

* Change tolerance function

* Reduce number of test cases
2019-06-04 15:54:09 +03:00
Alexander Alekhin
9f68376c91 gapi: fix visibility conflict in OpenCV builds 2019-05-29 15:06:08 +03:00
Ruslan Garnov
54ff72a1cc Merge pull request #14599 from rgarnov:gapi_aux_kernels
G-API aux kernels (#14599)

* Removed gcpuimgproc.hpp and gcpucore.hpp

* Changed GModel::orderedInputs and orderedOutputs to get ConstGraph&

* Added auxiliaryKernels() method of GBackend::Priv
2019-05-22 21:13:13 +03:00
atalaman
cbb699efd2 Merge pull request #14151 from TolyaTalamanov:at/own-mat-output-doesnt-support
G-API: own::Mat as output computation doesn't work (#14151)

* Fix bug with output own::Mat

* Fix comments to review

* Fix preprocess condition

* Fix comments to review
2019-05-22 19:57:08 +03:00
atalaman
d9dac9cd1b Merge pull request #14150 from TolyaTalamanov:at/computation-doesnt-work-with-out-vector
G-API: GComputation doesn't work with output vector<cv::Mat> (#14150)

* Fix bug with gcomputation output vector

* Add test fixture

* Fix comments to review

* Fix alignment
2019-05-22 19:13:15 +03:00
atalaman
935c02c0a3 Merge pull request #13851 from TolyaTalamanov:at/new-kernel-package-design
G-API: Kernel package design (#13851)

* Remove cv::unite_policy from API

* Add check that all id in kernel package are unique

* Refactor checker id procedure

* Remove cv::gapi::GLookupOrder from API

* Implement cv::gapi::use_only

* Fix samples

* Fix docs

* Fix comments to review

* Remove unite_policy

* Fix GKernelPackage::backends()

* Fix comments to review

* Fix all_unique

* Fix comments to review

* Fix comments to review

* Remove out of date tests
2019-05-22 14:53:44 +03:00
Ruslan Garnov
50af4df1d7 Fixed roi inference to always produce even sizes for nv12 2019-05-14 18:37:33 +03:00
Anton Potapov
c2e26c1527 Async API for GAPI
- minor cosmetic changes : comments, typos
2019-05-07 13:12:15 +03:00
Alexander Alekhin
076ee65c85 Merge pull request #14448 from rgarnov:gapi_gmatp 2019-04-30 16:48:34 +00:00
Ruslan Garnov
834d438d6e Added GMatP type 2019-04-30 17:25:29 +03:00
anton-potapov
f5801ee7da Merge pull request #14346 from anton-potapov:gapi_async
* Async API for GAPI

 - naive implementation as a starting point

* Fix namespace comment in header
2019-04-30 13:11:56 +03:00
Alexander Alekhin
faca45a7ea Merge pull request #14429 from rgarnov:gapi_fluid_fix_small_rois 2019-04-29 15:08:11 +00:00
Ruslan Garnov
ffaf4d5da4 Fixed incorrect first window setting for fluid FilterAgent 2019-04-26 17:34:44 +03:00
Ruslan Garnov
fb326a3589 Added a reproducer 2019-04-26 17:33:50 +03:00
Ruslan Garnov
f81886d17c Added planar flag to GMatDesc, intergated into framework, added tests 2019-04-26 14:04:44 +03:00
Ruslan Garnov
1f517b8a02 Merge pull request #13943 from rgarnov:export_headers_for_backend_development
G-API external backend development (#13943)

* Moved HostCtor and ConstVal from gapi_priv.hpp to objref.hpp

* Added gmodel_priv.hpp, added export of symbols from gmodel.hpp

* Added export of binInArg and bindOutArg

* Renamed gapi_priv.*pp -> gorigin.*pp

* Added a fixme on collecting exports inside one class
2019-04-17 21:54:47 +03:00
Alexander Alekhin
ee7255aac4 Merge pull request #14144 from alalek:issue_14143 2019-04-03 14:35:54 +00:00
Alexander Alekhin
cd6d8048bb gapi: fix tests build 2019-04-02 13:46:25 +03:00
Alexander Alekhin
f75152a597 gapi: fix build with Intel Compiler 2019 2019-03-28 19:24:43 +00:00
Alexander Alekhin
73191ad3ec Merge pull request #14172 from smirnov-alexey:gapi_fix_nv12_valgrind 2019-03-28 13:45:45 +00:00
smirnov-alexey
769d2f4c44 Fix valgrind issue in NV12 test 2019-03-28 12:59:51 +03:00
Andrey Golubev
dd2823aaec [G-API] Allow unused nodes in Fluid backend
Allow nodes produced after some operation to be
"unused": not being an output and not being used
as inputs to other operations

Add fluid test to cover this case
2019-03-18 18:20:11 +03:00
Alexander Alekhin
4f9a99141e Merge pull request #13937 from smirnov-alexey:gapi_change_standalone_cmake 2019-03-07 14:38:14 +00:00
smirnov-alexey
6b31f58092 Modifies standalone G-API cmake for testing it properly 2019-03-04 15:33:15 +03:00
smirnov-alexey
939ea4ba30 Remove incorrect asserts in NV12 to RGB/BGR kernels 2019-03-01 13:31:16 +03:00
Ruslan Garnov
c0076b58cd Added NV12 support to fluid backend 2019-02-19 18:18:23 +03:00
Ruslan Garnov
322115bfcf Removed unused functions from View::Priv 2019-02-18 19:26:54 +03:00
smirnov-alexey
406392e13d Introduces yuv420p(nv12) to rgb and bgr color conversion 2019-02-15 14:25:57 +03:00
smirnov-alexey
caf438c63b Fixes an issue with valgrind and sobelxy 2019-02-12 18:36:06 +03:00
klemens
997b7b18af spelling fixes 2019-02-09 22:29:54 +01:00
Alexey Smirnov
b1cc114b7b Merge pull request #13723 from smirnov-alexey:gapi_add_sobelxy
* Add Sobel kernel which returns both dx and dy

* Splice dx and dy and extend add_border function

Also change some tests parameters

* Add borderValue parameter in test

* Introduces fluid kernel for sobelxy

Adds tests (basic and performance) on new backend

* Introduces BufHelper struct for some arithmetic
2019-02-08 16:59:56 +03:00
Alexey Smirnov
766fd20faa Merge pull request #13745 from smirnov-alexey:gapi_add_gout_overloading
* Add GOut overloading for tuple of parameter pack

* Move getGOut_impl into namespace and add const to input references
2019-02-08 13:16:50 +03:00
Alexey Smirnov
315e7fbbee Merge pull request #13721 from smirnov-alexey:gapi_add_normalize
GAPI: Add normalize kernel in G-API (#13721)

* Add normalize kernel in G-API

In addition add several tests on new kernel

* Fix indentations and normalize test structure

* Move normalize kernel from imgproc to core

Set default parameter ddepth to -1

* Fix alignment
2019-02-07 16:05:39 +03:00
Alexander Alekhin
d073215f10 Merge pull request #13705 from mshabunin:clang-warnings 2019-02-01 16:11:00 +00:00
Maksim Shabunin
ea3dc78986 Fixed warnings produced by clang-9.0.0 2019-01-30 14:05:32 +03:00
Alexey Smirnov
a65ccc0603 Merge pull request #13678 from smirnov-alexey:gapi_fix_descrof_overloading
* Return vector of MetaArg instead of MatDesc and fix test with ADL check

* Fix construction of vector

* Change names and tests according to review
Also add GAPI_EXPORTS prefix for two ostream operators
2019-01-28 16:26:32 +03:00
Ruslan Garnov
3c6d5aba22 Fixed fluid heterogeneity support 2019-01-24 17:45:26 +03:00
Alexey Smirnov
5728679fd5 Merge pull request #13664 from smirnov-alexey:gapi_add_descrof_overloading
* Add version of descr_of function taking vector of Mat

* Overload descr_of function for cv::Mat

* Add template function instead of copypasting and change tests a little
2019-01-22 13:14:33 +03:00
Andrey Golubev
55770c9853 Merge pull request #13640 from andrey-golubev:gapi_gcallpriv_doc
* GAPI: document GCall's recursive behavior

* Move documentation outside the class
2019-01-17 20:59:47 +03:00
Andrey Golubev
c8a89134a7 GAPI: fix GCall misuse in unrollExpr 2019-01-16 18:15:44 +03:00
Dmitry Budnikov
eedd7bfd50 fix size 2018-12-19 17:45:00 +03:00
Ruslan Garnov
5340073770 Removed UNUSED macro 2018-12-13 14:39:33 +03:00
Ruslan Garnov
d38676085a Added "kernels" pass stage to compiler, removed unused opaque from cv::gimpl::Op 2018-12-12 17:22:52 +03:00
Alexander Alekhin
c577c2cc6a gapi: eliminate KW issues 2018-12-03 15:20:47 +03:00
Alexander Alekhin
197285d12a Merge pull request #13331 from dbudniko:dbudniko/gapi_gpu_to_ocl_renaming_patch 2018-11-29 15:39:14 +00:00
Evgeny Latkin
ab430b8c87 Merge pull request #13329 from elatkin:el/gapi_perf_medblur
GAPI (fluid): Median blur optimization (#13329)

* GAPI (fluid): Median blur optimization: reference 3x3

* GAPI (fluid): Median blur optimization: CPU dispatcher

* GAPI (fluid): Median blur optimization: manual CV_SIMD
2018-11-29 18:02:29 +03:00
Dmitry Budnikov
d1029faa90 patch removes gpu mention from ocl backend 2018-11-29 17:05:41 +03:00
Dmitry Budnikov
6374b99a1a Merge pull request #13240 from dbudniko:dbudniko/gapi_gpu_to_ocl_renaming
G-API rename GPU backend to OCL backend (#13240)

* renaming draft

* inline namespace instead non-safe define

* more back compatibility

* Updates after review from Dmitry
2018-11-29 16:29:11 +03:00
Evgeny Latkin
c928c21fe7 Merge pull request #13319 from elatkin:el/gapi_perf_erdilate_2
GAPI (fluid): Erode/Dilate optimization, part 2 (#13319)

* GAPI (fluid): Erode/Dilate optimization: hard-code 3x3 case

* GAPI (fluid): Erode/Dilate optimization: CPU dispatcher

* GAPI (fluid): Erode/Dilate optimization: speed-up 10-15x times with CV_SIMD

* GAPI (fluid): Erode/Dilate optimization: 20-30% speed-up
2018-11-28 19:50:39 +03:00
Evgeny Latkin
992d5b8bcd Merge pull request #13315 from elatkin:el/gapi_perf_erdilate
GAPI (fluid): Erode/Dilate optimization (#13315)

* GAPI (fluid): Erode/Dilate optimization: hard-code 3x3 case

* GAPI (fluid): Erode/Dilate optimization: CPU dispatcher

* GAPI (fluid): Erode/Dilate optimization: speed-up 10-15x times with CV_SIMD
2018-11-28 18:20:31 +03:00
Evgeny Latkin
6808d33b2f Merge pull request #13290 from elatkin:el/gapi_perf_filter2d
GAPI (fluid): Filter 2D optimization (#13290)

* GAPI (fluid): Filter 2D optimization: speedup 13x if float, 2x if integral

* GAPI (fluid): Filter 2D speedup 8x if output is short/ushort

* GAPI (fluid): Filter 2D speedup 7x if output is uchar

* GAPI (fluid): Filter 2D optimization: fixed compiler warnings

* GAPI (fluid): fix compiler warnings on Mac

* GAPI (fluid): fix compiler warnings on Mac

* GAPI (fluid): fix compiler errors on VS2015

* GAPI (fluid): fix compiler errors on VS2015

* GAPI (fluid): fix compiler errors on VS2015
2018-11-27 19:12:14 +03:00
Dmitry Budnikov
51cc78b2a2 Merge pull request #13251 from dbudniko:dbudniko/gapi_more_fixes_for_tests
More fixes for G-API tests (#13251)

* scalar comparator and more fixes for tests

* add weighted aligned

* white space

* more white space

* Add weighted test accuracy check enabled
2018-11-26 17:44:46 +03:00
Evgeny Latkin
f07856eab9 Merge pull request #13221 from elatkin:el/gapi_perf_sepfilter
GAPI (fluid): optimization of Separable filter (#13221)

* GAPI (fluid): Separable filter: performance test

* GAPI (fluid): enable all performance tests

* GAPI: separable filters: alternative code for Sobel

* GAPI (fluid): hide unused old code for Sobel filter

* GAPI (fluid): especial code for Sobel if U8 into S16

* GAPI (fluid): back to old code for Sobel

* GAPI (fluid): run_sepfilter3x3_impl() with CPU dispatcher

* GAPI (fluid): run_sepfilter3x3_impl(): fix compiler warnings

* GAPI (fluid): new engine for separable filters (but Sobel)

* GAPI (fluid): new performance engine for Sobel

* GAPI (fluid): Sepfilters performance: fixed compilation error
2018-11-26 15:05:35 +03:00
Alexander Alekhin
c6daa4aa16 Merge pull request #13260 from alalek:cmake_ade_12856 2018-11-23 17:09:47 +00:00
Dmitry Budnikov
a518e7063d Merge pull request #13120 from dbudniko:dbudniko/gapi_opencl_kernel_example
* custom OpenCL G-API kernel draft

* clean up and warnings fix

* more warnings

* white space

* new blank line at the EOF removed

* HAVE_OPENCL guard

* remove unnecessary ocl API call

* remove sum test workaround

* check if opencl activated

* fix std::str warning

* CPU fall back for symm7x7

* gpu test kernel draft

* adjust have opencl guard

* more guards

* one more attempt to adjust guards

* empty stub files and kernel source files creation in the test directory

* try to force auto generation

* one more attempt to force build

* remove symm7x7 custom from gapi module

* looks like that this version works properly on Win desktop

* clean up

* more clean up

* address some suggestions from Dmitry's review

* const kernel coefficients

* CV_Error in kernel + try to fix cpu fallback

* CV_Error_ instead CV_Error

* everything in one gapi_gpu_test.cpp

* fix warning

* remove kernel generation, add kernel string

* avoid generated code and ocl internal namespace

* fix misprint

* c_str
2018-11-23 17:51:15 +03:00
Alexander Alekhin
de8696aa43 cmake: allow to disable ADE build too (BUILD_opencv_gapi=OFF is not enough)
CMake option: WITH_ADE=OFF
2018-11-23 12:52:41 +03:00
Ruslan Garnov
a3df05d93b Merge pull request #13215 from rgarnov:rg/overhead
* Added caching of agents execution sequence

* Merged linesRead() and nextWindow() methods on FluidAgent in one method

* Added caching of input lines for fluid::View

* Added caching of output lines for fluid::Buffer

* Fixed GAPI_Assert to work in standalone mode
2018-11-20 17:25:04 +03:00
Dmitry Matveev
1b13df5368 G-API: Recent inclusion has broken STANDALONE build
This MR fixes this.
2018-11-20 14:00:08 +03:00
Evgeny Latkin
083332f85f Merge pull request #13206 from elatkin:el/gapi_perf_rgb2lab
GAPI (fluid): RGB to Lab optimization (#13206)

* GAPI (fluid): BGR2LUV, RGB2Lab: performance test

* GAPI (fluid): BGR2LUV, RGB2Lab: using cv::hal::cvtBGRtoLab

* GAPI (fluid): BGR2LUV, RGB2Lab: hide reference code with #ifdef
2018-11-19 18:52:48 +03:00
Evgeny Latkin
6757c2c5a6 Merge pull request #13174 from elatkin:el/gapi_perf_rgb2yuv
GAPI (fluid): RGB to YUV optimization (#13174)

* GAPI (fluid): RGB to YUV: activate performance tests

* GAPI (fluid): speedup 4-8x RGB-to-YUV, 2.5x YUV to RGB with int16 arithmetic

* GAPI (fluid): RGB <--> YUV: fixed compiler warning

* GAPI (fluid): RGB <--> YUV: additional speedup 2-3x times (10-15x over original) via manual CV_SIMD

* GAPI (fluid): RGB <--> YUV: dynamic CV_SIMD dispatching
2018-11-19 17:30:14 +03:00
Alexander Alekhin
a574788e89 move legacy C-API constants into separate files 2018-11-17 23:47:51 +00:00
Dmitry Matveev
d7540c9a3c Merge pull request #13176 from dmatveev:gapi_doxygen
G-API: Doxygen class reference

* G-API Doxygen documentation: covered cv::GComputation

* G-API Doxygen documentation: added sections on compile arguments

* G-API Doxygen documentation: restructuring & more text

* Added new sections (organized API reference into it);
* Documented GCompiled, compile args, backends, etc.

* G-API Doxygen documentation: documented GKernelPackage and added group for meta
2018-11-16 23:38:10 +03:00
Evgeny Latkin
f81370232a Merge pull request #13162 from elatkin:el/gapi_perf_rgb2gray
GAPI (fluid): RGB/BGR to gray: optimization (#13162)

* GAPI (fluid): RGB/BGR to Gray: add performance tests

* GAPI (fluid): RGB/BGR to Gray: speedup 8-12x with manual CV_SIMD

* GAPI (fluid): RGB/BGR to Gray: fix compiler warning

* GAPI (fluid): RGB/BGR to Gray: dynamic dispatching to AVX2

* GAPI (fluid): RGB/BGR to Gray: check R/G/B coefficients

* GAPI (fluid): RGB/BGR to Gray: fixed compilation error (caused by change in master)
2018-11-15 18:14:27 +03:00
Dmitry Matveev
85fad1504a Merge pull request #13030 from dmatveev:tutorial
* G-API: First steps with tutorial

* G-API Tutorial: First iteration

* G-API port of anisotropic image segmentation tutorial;
* Currently works via OpenCV only;
* Some new kernels have been required.

* G-API Tutorial: added chapters on execution code, inspection, and profiling

* G-API Tutorial: make Fluid kernel headers public

For some reason, these headers were not moved to the public
headers subtree during the initial development. Somehow it even
worked for the existing workloads.

* G-API Tutorial: Fix a couple of issues found during the work

* Introduced Phase & Sqrt kernels, OCV & Fluid versions
* Extended GKernelPackage to allow kernel removal & policies on include()

All the above stuff needs to be tested, tests will be added later

* G-API Tutorial: added chapter on running Fluid backend

* G-API Tutorial: fix a number of issues in the text

* G-API Tutorial - some final updates

- Fixed post-merge issues after Sobel kernel renaming;
- Simplified G-API code a little bit;
- Put a conclusion note in text.

* G-API Tutorial - fix build issues in test/perf targets

Public headers were refactored but tests suites were not updated in time

* G-API Tutorial: Added tests & reference docs on new kernels

* Phase
* Sqrt

* G-API Tutorial: added link to the tutorial from the main module doc

* G-API Tutorial: Added tests on new GKernelPackage functionality

* G-API Tutorial: Extended InRange tests to cover 32F

* G-API Tutorial: Misc fixes

* Avoid building examples when gapi module is not there
* Added a volatile API disclaimer to G-API root documentation page

* G-API Tutorial: Fix perf tests build issue

This change came from master where Fluid kernels are still used
incorrectly.

* G-API Tutorial: Fixed channels support in Sqrt/Phase fluid kernels

Extended tests to cover this case

* G-API Tutorial: Fix text problems found on team review
2018-11-15 18:12:36 +03:00
Alexander Alekhin
ca9aa180c1 Merge pull request #13096 from alalek:gapi_tests_checks 2018-11-14 15:59:01 +00:00
Alexander Alekhin
6189b47648 gapi(test): more reliable checks
avoid `countNonZero()`, use `norm()`
2018-11-14 13:30:53 +03:00
Alexander Alekhin
dd6f5949c2 gapi(test): use relative error check for Norm/Sum tests 2018-11-14 13:30:53 +03:00
Latkin, Yevgeny I
a62539489d GAPI (fluid): Sobel 3x3 optimization: remove needless file 2018-11-14 10:17:40 +03:00
Alexander Alekhin
8b7f805642 Merge pull request #13150 from dmatveev:update_ade011d 2018-11-13 16:18:32 +00:00
Evgeny Latkin
cc5190eb91 Merge pull request #13133 from elatkin:el/gapi_perf_sobel_2
GAPI (fluid): Sobel 3x3 optimization: CV_SIMD dynamic dispatching (#13133)

* GAPI (fluid): Sobel 3x3: remove template for run_sobel_row()

* GAPI (fluid): Sobel 3x3: dynamic dispatching of CV_SIMD code

* GAPI (fluid): Sobel 3x3 optimization: fixed CV_SIMD dynamic dispatcher
2018-11-13 17:48:10 +03:00
Dmitry Matveev
4eff798270 Update ADE to version 0.1.1d 2018-11-13 16:44:29 +03:00
Evgeny Latkin
4e40e5bb88 Merge pull request #13070 from elatkin:el/gapi_perf_sobel
GAPI (fluid): optimization of Sobel 3x3 (#13070)

* GAPI: performance test for Sobel

* GAPI: performance test for Sobel w/FP32 input

* GAPI: Sobel speedup: 2.5x (U8) up to 10x (float)

* GAPI: Sobel 3x3 to support U8 into S16

* GAPI (fluid): Sobel 3x3 speedup: 10% (uchar), 1.5x (float)

* GAPI (fluid): Sobel 3x3 speedup: +10x (uchar), but -20% (float)

* GAPI (fluid): Sobel 3x3 speedup: +10% (float)

* GAPI (fluid): Sobel 3x3 speedup: +15% (float), +10% (uchar)

* GAPI (fluid): Sobel 3x3: address GCC warnings

* GAPI (fluid): Sobel 3x3: separate *.cpp file w/SIMD code

* GAPI (fluid): Sobel 3x3: fixed AVX2 code, AVX2 speedup 20-50% (uchar), 10-20% (float)

* GAPI (fluid): Sobel 3x3: fix CV_SIMD code for AVX2

* GAPI (fluid): Sobel 3x3: refactor
2018-11-13 15:04:37 +03:00
Alexander Alekhin
75a6eaf147 Merge pull request #13024 from rgarnov:gapi_fix_lut_test 2018-11-09 19:16:39 +00:00
Ruslan Garnov
858ba6c798 Fixed uniniitialized mats in tests, added operator<< for compare_f 2018-11-09 12:00:55 +03:00
Alexander Alekhin
386733aea1 gapi: fix ARM build 2018-11-09 06:37:48 +00:00
Dmitry Budnikov
5087ff0814 Merge pull request #13008 from dbudniko:dbudniko/gpu_opencl_backend
G-API GPU-OpenCL backend (#13008)

* gpu/ocl backend core

* accuracy tests added and adjusted + license headers

* GPU perf. tests added; almost all adjusted to pass

* all tests adjusted and passed - ready for pull request

* missing license headers

* fix warning (workaround RGB2Gray)

* fix c++ magic

* precompiled header

* white spaces

* try to fix warning and blur test

* try to fix Blur perf tests

* more alignments with the latest cpu backend

* more gapi tests refactoring + 1 more UB issue fix + more informative tolerance exceed reports

* white space fix

* try workaround for SumTest

* GAPI_EXPORTS instead CV_EXPORTS
2018-11-08 22:14:53 +03:00
Alexander Alekhin
3c99dc96b1 Merge pull request #13001 from rgarnov:gapi_standalone_cmake 2018-11-07 15:12:29 +00:00
Ruslan Garnov
c972c94662 Added Standalone.cmake 2018-11-07 14:54:18 +03:00
Evgeny Latkin
000110e760 Merge pull request #13052 from elatkin:yl/gapi_sobel3x3_f32_v2
* GAPI: Sobel 3x3 with FP32 input

* GAPI: Sobel 3x3 with FP32 input, v2
2018-11-06 23:08:50 +03:00
Ruslan Garnov
443fed796a Merge pull request #12990 from rgarnov:gapi_fluid_reshape_support
G-API: Introduce new `reshape()` API (#12990)

* Moved initFluidUnits, initLineConsumption, calcLatency, calcSkew to separate functions

* Added Fluid::View::allocate method (moved allocation logic from constructor)

* Changed util::zip to util::indexed, utilized collectInputMeta in GFluidExecutable constructor

* Added makeReshape method to FluidExecutable

* Removed m_outputRoi from GFluidExecutable

* Added reshape feature

* Added switch of resize mapper if agent ratio was changed

* Added more TODOs and renamed a function

* G-API reshape(): add missing `override` specifiers

Fix warnings on all platforms
2018-10-30 21:12:36 +03:00
AsyaPronina
08536943ad Merge pull request #12949 from AsyaPronina:missed_multiply_operator_for_GMAT
Made scale parameter optional for mul kernel wrapper (#12949)

* Added missed operator*(GMat, GMat). Made scale parameter optional for mul kernel.

* Fixed perf test for mul(GMat, GMat) kernel

* Removed operator*(GMat, GMat) as not needed
2018-10-30 21:10:47 +03:00
Dmitry Budnikov
220b278575 Merge pull request #12944 from dbudniko:dbudniko/tests_thresholds
* added threshold to g-api imgproc tests

* trailing spaces remove

* try to fix warnings

* fix license header

* fix random numbers issue

* fix Sobel test

* license headers + precompiled headers included
2018-10-29 17:34:20 +03:00
AsyaPronina
e6dd9a78ae Merge pull request #12947 from AsyaPronina:sobel_renaming
* Renamed Sobel operator GAPI kernel to match with OpenCV naming rules

* Fixed perf tests

* Small refactoring to check CI issue

* Refactored alignment for kernel wrappers in imgproc.hpp
2018-10-27 19:54:32 +03:00
Dmitry Matveev
dbed39a931 Merge pull request #12857 from dmatveev:hld
* G-API Documentation: first submission

This PR introduces a number of new OpenCV documentation chapters for
Graph API module.

In particular, the following topics are covered:
- Introduction & background information;
- High-level design overview;
- Kernel API;
- Pipeline example.

All changes are done in Markdown files, no headers, etc modified.

Doxygen references for main API classes will be added later.

Also, a tutorial will be introduced soon (in the common Tutorials place)

* G-API Documentation - fix warnings & trailing whitespaces

* G-API Documentation: address review issues

* G-API Documentation: export code snippets to compileable files

* gapi: move documentation samples
2018-10-24 07:47:56 +03:00
Dmitry Matveev
5e9750d1f5 Merge pull request #12870 from dmatveev:gapi_fluid_basic_hetero_support
* G-API Fluid basic heterogeneity support: initial upload

* G-API Fluid heterogeneity: address some coding style issues

* G-API Fluid heterogeneity: fix compiler warnings

* G-API Fluid heterogeneity: fix warnings on Windows & ARMv7

* G-API Fluid heterogeneity: finally fix Windows warnings

* G-API Fluid heterogeneity: fix dangling reference problem
2018-10-19 18:32:48 +03:00
Alexander Alekhin
1188c6fe14 Merge pull request #12838 from dmatveev:gapi_fluid_resize_lpi 2018-10-17 09:22:28 +00:00
Alexander Alekhin
13aa23f706 Merge pull request #12836 from dmatveev:gapi_upd151018 2018-10-15 16:20:52 +00:00
Dmitry Matveev
922d5796b9 G-API: Introduce LPI (multiple Lines-Per-Iteration) support for Resize
Several Resize optimizations count on fetching multiple input lines at
once to do interpolation more efficiently.

At the moment, Fluid backend supports only LPI=1 for Resize kernels.

This patch introduces scheduling support for Resizes with LPI>1 and
covers these cases with new tests.

The support is initially written by Ruslan Garnov.
2018-10-15 17:11:55 +03:00
Dmitry Matveev
f0ddc2a53c G-API: Fixed static analysis issue in own::Mat
Tool reported a false alarm on possible out-of-bounds access which
was work-arounded to make code more clear
2018-10-15 16:31:31 +03:00
Alexander Alekhin
d5d059690f gapi(test): disable divide tests with zeros 2018-10-14 10:47:50 +00:00
Dmitry Matveev
2c6ab65476 Merge pull request #12674 from dmatveev:gapi_upd270918
* Update G-API code base to 27-Sep-18

Changes mostly improve standalone build support

* G-API code base update 28-09-2018

* Windows/Documentation warnings should be fixed
* Fixed stability issues in Fluid backend
* Fixed precompiled headers issues in G-API source files

* G-API code base update 28-09-18 EOD

* Fixed several static analysis issues
* Fixed issues found when G-API is built in a standalone mode
2018-09-28 18:42:09 +03:00
Dmitry Matveev
29e88e50ff Merge pull request #12608 from dmatveev:gapi
* G-API Initial code upload

* Update G-API code base to Sep-24-2018

* The majority of OpenCV buildbot problems was addressed

* Update G-API code base to 24-Sep-18 EOD

* G-API code base update 25-Sep-2018

* Linux warnings should be resolved
* Documentation build should become green
* Number of Windows warnings should be reduced

* Update G-API code base to 25-Sep-18 EOD

* ARMv7 build issue should be resolved
* ADE is bumped to latest version and should fix Clang builds for macOS/iOS
* Remaining Windows warnings should be resolved
* New Linux32 / ARMv7 warnings should be resolved

* G-API code base update 25-Sep-2018-EOD2

* Final Windows warnings should be resolved now

* G-API code base update 26-Sep-2018

* Fixed issues with precompiled headers in module and its tests
2018-09-26 21:50:39 +03:00