* G-API-NG/Streaming: Introduced a Streaming API
Now a GComputation can be compiled in a special "streaming" way
and then "played" on a video stream.
Currently only VideoCapture is supported as an input source.
* G-API-NG/Streaming: added threading & real streaming
* G-API-NG/Streaming: Added tests & docs on Copy kernel
- Added very simple pipeline tests, not all data types are covered yet
(in fact, only GMat is tested now);
- Started testing non-OCV backends in the streaming mode;
- Added required fixes to Fluid backend, likely it works OK now;
- Added required fixes to OCL backend, and now it is likely broken
- Also added a UMat-based (OCL) version of Copy kernel
* G-API-NG/Streaming: Added own concurrent queue class
- Used only if TBB is not available
* G-API-NG/Streaming: Fixing various issues
- Added missing header to CMakeLists.txt
- Fixed various CI issues and warnings
* G-API-NG/Streaming: Fixed a compile-time GScalar queue deadlock
- GStreamingExecutor blindly created island's input queues for
compile-time (value-initialized) GScalars which didn't have any
producers, making island actor threads wait there forever
* G-API-NG/Streaming: Dropped own version of Copy kernel
One was added into master already
* G-API-NG/Streaming: Addressed GArray<T> review comments
- Added tests on mov()
- Removed unnecessary changes in garray.hpp
* G-API-NG/Streaming: Added Doxygen comments to new public APIs
Also fixed some other comments in the code
* G-API-NG/Streaming: Removed debug info, added some comments & renamed vars
* G-API-NG/Streaming: Fixed own-vs-cv abstraction leak
- Now every island is triggered with own:: (instead of cv::)
data objects as inputs;
- Changes in Fluid backend required to support cv::Mat/Scalar were
reverted;
* G-API-NG/Streaming: use holds_alternative<> instead of index/index_of test
- Also fixed regression test comments
- Also added metadata check comments for GStreamingCompiled
* G-API-NG/Streaming: Made start()/stop() more robust
- Fixed various possible deadlocks
- Unified the shutdown code
- Added more tests covering different corner cases on start/stop
* G-API-NG/Streaming: Finally fixed Windows crashes
In fact the problem hasn't been Windows-only.
Island thread popped data from queues without preserving the Cmd
objects and without taking the ownership over data acquired so when
islands started to process the data, this data may be already freed.
Linux version worked only by occasion.
* G-API-NG/Streaming: Fixed (I hope so) Windows warnings
* G-API-NG/Streaming: fixed typos in internal comments
- Also added some more explanation on Streaming/OpenCL status
* G-API-NG/Streaming: Added more unit tests on streaming
- Various start()/stop()/setSource() call flow combinations
* G-API-NG/Streaming: Added tests on own concurrent bounded queue
* G-API-NG/Streaming: Added more tests on various data types, + more
- Vector/Scalar passed as input;
- Vector/Scalar passed in-between islands;
- Some more assertions;
- Also fixed a deadlock problem when inputs are mixed (1 constant, 1 stream)
* G-API-NG/Streaming: Added tests on output data types handling
- Vector
- Scalar
* G-API-NG/Streaming: Fixed test issues with IE + Windows warnings
* G-API-NG/Streaming: Decoupled G-API from videoio
- Now the core G-API doesn't use a cv::VideoCapture directly,
it comes in via an abstract interface;
- Polished a little bit the setSource()/start()/stop() semantics,
now setSource() is mandatory before ANY call to start().
* G-API-NG/Streaming: Fix STANDALONE build (errors brought by render)
> Size parameter is changed from int to cv::Size type to allow rectangle kernels
> Kernel creation code is adopted for different kernel sizes to not create only white images on the output
* 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
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
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
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.
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
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
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
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
* 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
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
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
* 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
* 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
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