1 // This file is part of OpenCV project.
2 // It is subject to the license terms in the LICENSE file found in the top-level directory
3 // of this distribution and at http://opencv.org/license.html.
5 // Copyright (C) 2018-2019 Intel Corporation
8 #include "../perf_precomp.hpp"
9 #include "../common/gapi_core_perf_tests.hpp"
11 #define CORE_GPU cv::gapi::core::gpu::kernels()
16 INSTANTIATE_TEST_CASE_P(AddPerfTestGPU, AddPerfTest,
17 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
18 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
19 Values( -1, CV_8U, CV_16U, CV_32F ),
20 Values(cv::compile_args(CORE_GPU))));
22 INSTANTIATE_TEST_CASE_P(AddCPerfTestGPU, AddCPerfTest,
23 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
24 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
25 Values( -1, CV_8U, CV_16U, CV_32F ),
26 Values(cv::compile_args(CORE_GPU))));
28 INSTANTIATE_TEST_CASE_P(SubPerfTestGPU, SubPerfTest,
29 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
30 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
31 Values( -1, CV_8U, CV_16U, CV_32F ),
32 Values(cv::compile_args(CORE_GPU))));
34 INSTANTIATE_TEST_CASE_P(SubCPerfTestGPU, SubCPerfTest,
35 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
36 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
37 Values( -1, CV_8U, CV_16U, CV_32F ),
38 Values(cv::compile_args(CORE_GPU))));
40 INSTANTIATE_TEST_CASE_P(SubRCPerfTestGPU, SubRCPerfTest,
41 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
42 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
43 Values( -1, CV_8U, CV_16U, CV_32F ),
44 Values(cv::compile_args(CORE_GPU))));
46 INSTANTIATE_TEST_CASE_P(MulPerfTestGPU, MulPerfTest,
47 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
48 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
49 Values( -1, CV_8U, CV_16U, CV_32F ),
50 Values(cv::compile_args(CORE_GPU))));
52 INSTANTIATE_TEST_CASE_P(MulDoublePerfTestGPU, MulDoublePerfTest,
53 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
54 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
55 Values( -1, CV_8U, CV_16U, CV_32F ),
56 Values(cv::compile_args(CORE_GPU))));
58 INSTANTIATE_TEST_CASE_P(MulCPerfTestGPU, MulCPerfTest,
59 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
60 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
61 Values( -1, CV_8U, CV_16U, CV_32F ),
62 Values(cv::compile_args(CORE_GPU))));
64 INSTANTIATE_TEST_CASE_P(DivPerfTestGPU, DivPerfTest,
65 Combine(Values(Tolerance_FloatRel_IntAbs(1e-5, 2).to_compare_f()),
66 Values( szSmall128, szVGA, sz720p, sz1080p ),
67 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
68 Values( -1, CV_8U, CV_16U, CV_32F ),
69 Values(cv::compile_args(CORE_GPU))));
71 INSTANTIATE_TEST_CASE_P(DivCPerfTestGPU, DivCPerfTest,
72 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
73 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
74 Values( -1, CV_8U, CV_16U, CV_32F ),
75 Values(cv::compile_args(CORE_GPU))));
77 INSTANTIATE_TEST_CASE_P(DivRCPerfTestGPU, DivRCPerfTest,
78 Combine(Values(Tolerance_FloatRel_IntAbs(1e-5, 2).to_compare_f()),
79 Values( szSmall128, szVGA, sz720p, sz1080p ),
80 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
81 Values( -1, CV_8U, CV_16U, CV_32F ),
82 Values(cv::compile_args(CORE_GPU))));
83 //TODO: mask test doesn't work
85 INSTANTIATE_TEST_CASE_P(MaskPerfTestGPU, MaskPerfTest,
86 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
87 Values( CV_8UC1, CV_16UC1, CV_16SC1),
88 Values(cv::compile_args(CORE_GPU))));
91 INSTANTIATE_TEST_CASE_P(MeanPerfTestGPU, MeanPerfTest,
92 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
93 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
94 Values(cv::compile_args(CORE_GPU))));
96 INSTANTIATE_TEST_CASE_P(Polar2CartPerfTestGPU, Polar2CartPerfTest,
97 Combine(Values(Tolerance_FloatRel_IntAbs(1e-5, 2).to_compare_f()),
98 Values( szSmall128, szVGA, sz720p, sz1080p ),
99 Values(cv::compile_args(CORE_GPU))));
101 INSTANTIATE_TEST_CASE_P(Cart2PolarPerfTestGPU, Cart2PolarPerfTest,
102 Combine(Values(Tolerance_FloatRel_IntAbs(1e-2, 2).to_compare_f()),
103 Values( szSmall128, szVGA, sz720p, sz1080p ),
104 Values(cv::compile_args(CORE_GPU))));
106 INSTANTIATE_TEST_CASE_P(CmpPerfTestGPU, CmpPerfTest,
107 Combine(Values(CMP_EQ, CMP_GE, CMP_NE, CMP_GT, CMP_LT, CMP_LE),
108 Values( szSmall128, szVGA, sz720p, sz1080p ),
109 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
110 Values(cv::compile_args(CORE_GPU))));
112 INSTANTIATE_TEST_CASE_P(CmpWithScalarPerfTestGPU, CmpWithScalarPerfTest,
113 Combine(Values(CMP_EQ, CMP_GE, CMP_NE, CMP_GT, CMP_LT, CMP_LE),
114 Values( szSmall128, szVGA, sz720p, sz1080p ),
115 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
116 Values(cv::compile_args(CORE_GPU))));
118 INSTANTIATE_TEST_CASE_P(BitwisePerfTestGPU, BitwisePerfTest,
119 Combine(Values(AND, OR, XOR),
120 Values( szSmall128, szVGA, sz720p, sz1080p ),
121 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1),
122 Values(cv::compile_args(CORE_GPU))));
124 INSTANTIATE_TEST_CASE_P(BitwiseNotPerfTestGPU, BitwiseNotPerfTest,
125 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
126 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
127 Values(cv::compile_args(CORE_GPU))));
129 INSTANTIATE_TEST_CASE_P(SelectPerfTestGPU, SelectPerfTest,
130 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
131 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
132 Values(cv::compile_args(CORE_GPU))));
134 INSTANTIATE_TEST_CASE_P(MinPerfTestGPU, MinPerfTest,
135 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
136 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
137 Values(cv::compile_args(CORE_GPU))));
139 INSTANTIATE_TEST_CASE_P(MaxPerfTestGPU, MaxPerfTest,
140 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
141 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
142 Values(cv::compile_args(CORE_GPU))));
144 INSTANTIATE_TEST_CASE_P(AbsDiffPerfTestGPU, AbsDiffPerfTest,
145 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
146 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
147 Values(cv::compile_args(CORE_GPU))));
149 INSTANTIATE_TEST_CASE_P(AbsDiffCPerfTestGPU, AbsDiffCPerfTest,
150 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
151 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
152 Values(cv::compile_args(CORE_GPU))));
154 INSTANTIATE_TEST_CASE_P(SumPerfTestGPU, SumPerfTest,
155 Combine(Values(AbsToleranceScalar(1e-5).to_compare_f()),
156 Values( szSmall128, szVGA, sz720p, sz1080p ),
157 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
158 Values(cv::compile_args(CORE_GPU))));
160 INSTANTIATE_TEST_CASE_P(AddWeightedPerfTestGPU, AddWeightedPerfTest,
161 Combine(Values(Tolerance_FloatRel_IntAbs(1e-6, 1).to_compare_f()),
162 Values( szSmall128, szVGA, sz720p, sz1080p ),
163 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
164 Values( -1, CV_8U, CV_16U, CV_32F ),
165 Values(cv::compile_args(CORE_GPU))));
167 INSTANTIATE_TEST_CASE_P(NormPerfTestGPU, NormPerfTest,
168 Combine(Values(AbsToleranceScalar(1e-5).to_compare_f()),
169 Values(NORM_INF, NORM_L1, NORM_L2),
170 Values( szSmall128, szVGA, sz720p, sz1080p ),
171 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
172 Values(cv::compile_args(CORE_GPU))));
174 INSTANTIATE_TEST_CASE_P(IntegralPerfTestGPU, IntegralPerfTest,
175 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
176 Values( CV_8UC1, CV_16UC1, CV_16SC1, CV_32FC1 ),
177 Values(cv::compile_args(CORE_GPU))));
179 INSTANTIATE_TEST_CASE_P(ThresholdPerfTestGPU, ThresholdPerfTest,
180 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
181 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
182 Values(cv::THRESH_BINARY, cv::THRESH_BINARY_INV, cv::THRESH_TRUNC, cv::THRESH_TOZERO, cv::THRESH_TOZERO_INV),
183 Values(cv::compile_args(CORE_GPU))));
185 INSTANTIATE_TEST_CASE_P(ThresholdPerfTestGPU, ThresholdOTPerfTest,
186 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
188 Values(cv::THRESH_OTSU, cv::THRESH_TRIANGLE),
189 Values(cv::compile_args(CORE_GPU))));
191 INSTANTIATE_TEST_CASE_P(InRangePerfTestGPU, InRangePerfTest,
192 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
194 Values(cv::compile_args(CORE_GPU))));
196 INSTANTIATE_TEST_CASE_P(Split3PerfTestGPU, Split3PerfTest,
197 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
198 Values(cv::compile_args(CORE_GPU))));
200 INSTANTIATE_TEST_CASE_P(Split4PerfTestGPU, Split4PerfTest,
201 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
202 Values(cv::compile_args(CORE_GPU))));
204 INSTANTIATE_TEST_CASE_P(Merge3PerfTestGPU, Merge3PerfTest,
205 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
206 Values(cv::compile_args(CORE_GPU))));
208 INSTANTIATE_TEST_CASE_P(Merge4PerfTestGPU, Merge4PerfTest,
209 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
210 Values(cv::compile_args(CORE_GPU))));
212 INSTANTIATE_TEST_CASE_P(RemapPerfTestGPU, RemapPerfTest,
213 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
214 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
215 Values(cv::compile_args(CORE_GPU))));
217 INSTANTIATE_TEST_CASE_P(FlipPerfTestGPU, FlipPerfTest,
218 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
219 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
221 Values(cv::compile_args(CORE_GPU))));
223 INSTANTIATE_TEST_CASE_P(CropPerfTestGPU, CropPerfTest,
224 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
225 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
226 Values(cv::Rect(10, 8, 20, 35), cv::Rect(4, 10, 37, 50)),
227 Values(cv::compile_args(CORE_GPU))));
229 INSTANTIATE_TEST_CASE_P(ConcatHorPerfTestGPU, ConcatHorPerfTest,
230 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
231 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
232 Values(cv::compile_args(CORE_GPU))));
234 INSTANTIATE_TEST_CASE_P(ConcatVertPerfTestGPU, ConcatVertPerfTest,
235 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
236 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
237 Values(cv::compile_args(CORE_GPU))));
239 //TODO: fix this backend to allow ConcatVertVec ConcatHorVec
241 INSTANTIATE_TEST_CASE_P(ConcatHorVecPerfTestGPU, ConcatHorVecPerfTest,
242 Combine(Values(szSmall128, szVGA, sz720p, sz1080p),
243 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
244 Values(cv::compile_args(CORE_GPU))));
247 INSTANTIATE_TEST_CASE_P(ConcatVertVecPerfTestGPU, ConcatVertVecPerfTest,
248 Combine(Values( szSmall128, szVGA, sz720p, sz1080p ),
249 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
250 Values(cv::compile_args(CORE_GPU))));
253 INSTANTIATE_TEST_CASE_P(LUTPerfTestGPU, LUTPerfTest,
254 Combine(Values(CV_8UC1, CV_8UC3),
256 Values( szSmall128, szVGA, sz720p, sz1080p ),
257 Values(cv::compile_args(CORE_GPU))));
259 INSTANTIATE_TEST_CASE_P(LUTPerfTestCustomGPU, LUTPerfTest,
260 Combine(Values(CV_8UC3),
262 Values( szSmall128, szVGA, sz720p, sz1080p ),
263 Values(cv::compile_args(CORE_GPU))));
266 INSTANTIATE_TEST_CASE_P(ConvertToPerfTestGPU, ConvertToPerfTest,
267 Combine(Values(CV_8UC3, CV_8UC1, CV_16UC1, CV_32FC1),
268 Values(CV_8U, CV_16U, CV_16S, CV_32F),
269 Values( szSmall128, szVGA, sz720p, sz1080p ),
270 Values(cv::compile_args(CORE_GPU))));
272 INSTANTIATE_TEST_CASE_P(ResizePerfTestGPU, ResizePerfTest,
273 Combine(Values(AbsSimilarPoints(2, 0.05).to_compare_f()),
274 Values(CV_8UC1, CV_16UC1, CV_16SC1),
275 Values(cv::INTER_NEAREST, cv::INTER_LINEAR, cv::INTER_AREA),
276 Values( szSmall128, szVGA, sz720p, sz1080p ),
277 Values(cv::Size(64,64),
279 Values(cv::compile_args(CORE_GPU))));
281 INSTANTIATE_TEST_CASE_P(ResizeFxFyPerfTestGPU, ResizeFxFyPerfTest,
282 Combine(Values(AbsSimilarPoints(2, 0.05).to_compare_f()),
283 Values(CV_8UC1, CV_16UC1, CV_16SC1),
284 Values(cv::INTER_NEAREST, cv::INTER_LINEAR, cv::INTER_AREA),
285 Values( szSmall128, szVGA, sz720p, sz1080p ),
288 Values(cv::compile_args(CORE_GPU))));