Ocean
Loading...
Searching...
No Matches
TestSSE.h
Go to the documentation of this file.
1/*
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 */
7
8#ifndef META_OCEAN_TEST_TESTCV_TEST_SSE_H
9#define META_OCEAN_TEST_TESTCV_TEST_SSE_H
10
12
13#if defined(OCEAN_HARDWARE_SSE_VERSION) && OCEAN_HARDWARE_SSE_VERSION >= 41
14
15namespace Ocean
16{
17
18namespace Test
19{
20
21namespace TestCV
22{
23
24/**
25 * This class implements a Computer Vision SSE test.
26 * @ingroup testcv
27 */
28class OCEAN_TEST_CV_EXPORT TestSSE
29{
30 public:
31
32 /**
33 * Tests the entire SSE class.
34 * @param testDuration Number of seconds for each test, with range (0, infinity)
35 * @return True, if succeeded
36 */
37 static bool test(const double testDuration);
38
39 /*
40 * Tests the SSE averaging functions for 1 channel 8 bit.
41 * @param testDuration Number of seconds for each test, with range (0, infinity)
42 * @return True, if all result are valid
43 */
44 static bool testAveraging1Channel8Bit2x2(const double testDuration);
45
46 /*
47 * Tests the SSE averaging functions for 1 channel 8 bit.
48 * @param testDuration Number of seconds for each test, with range (0, infinity)
49 * @return True, if all result are valid
50 */
51 static bool testAveraging1Channel32Bit2x2(const double testDuration);
52
53 /*
54 * Tests the SSE averaging functions for 2 channel 16 bit.
55 * @param testDuration Number of seconds for each test, with range (0, infinity)
56 * @return True, if all result are valid
57 */
58 static bool testAveraging2Channel16Bit2x2(const double testDuration);
59
60 /*
61 * Tests the SSE averaging functions for 2 channel 66 bit.
62 * @param testDuration Number of seconds for each test, with range (0, infinity)
63 * @return True, if all result are valid
64 */
65 static bool testAveraging2Channel64Bit2x2(const double testDuration);
66
67 /*
68 * Tests the SSE averaging functions for 3 channel 24 bit.
69 * @param testDuration Number of seconds for each test, with range (0, infinity)
70 * @return True, if all result are valid
71 */
72 static bool testAveraging3Channel24Bit2x2(const double testDuration);
73
74 /*
75 * Tests the SSE averaging functions for 3 channel 96 bit.
76 * @param testDuration Number of seconds for each test, with range (0, infinity)
77 * @return True, if all result are valid
78 */
79 static bool testAveraging3Channel96Bit2x2(const double testDuration);
80
81 /*
82 * Tests the SSE averaging functions for 4 channel 32 bit.
83 * @param testDuration Number of seconds for each test, with range (0, infinity)
84 * @return True, if all result are valid
85 */
86 static bool testAveraging4Channel32Bit2x2(const double testDuration);
87
88 /*
89 * Tests the SSE averaging functions for 4 channel 32 bit.
90 * @param testDuration Number of seconds for each test, with range (0, infinity)
91 * @return True, if all result are valid
92 */
93 static bool testAveraging4Channel128Bit2x2(const double testDuration);
94
95 /*
96 * Tests the binary SSE averaging functions for 1 channel 8 bit.
97 * @param testDuration Number of seconds for each test, with range (0, infinity)
98 * @return True, if all result are valid
99 */
100 static bool testBinaryAveraging1Channel8Bit2x2(const double testDuration);
101
102 /*
103 * Tests the SSE averaging functions for 1 channel 8 bit.
104 * @param testDuration Number of seconds for each test, with range (0, infinity)
105 * @return True, if all result are valid
106 */
107 static bool testAveraging1Channel8Bit3x3(const double testDuration);
108
109 /**
110 * De-interleave test for 8 bit 3 channels data with 15 elements.
111 * @param testDuration Number of seconds for each test, with range (0, infinity)
112 * @return True, if succeeded
113 */
114 static bool testDeInterleave3Channel8Bit15Elements(const double testDuration);
115
116 /**
117 * De-interleave test for 8 bit 3 channels data with 24 elements.
118 * @param testDuration Number of seconds for each test, with range (0, infinity)
119 * @return True, if succeeded
120 */
121 static bool testDeInterleave3Channel8Bit24Elements(const double testDuration);
122
123 /**
124 * De-interleave test for 8 bit 3 channels data with 48 elements.
125 * @param testDuration Number of seconds for each test, with range (0, infinity)
126 * @return True, if succeeded
127 */
128 static bool testDeInterleave3Channel8Bit48Elements(const double testDuration);
129
130 /**
131 * De-interleave test for 8 bit 3 channels data with 45 elements.
132 * @param testDuration Number of seconds for each test, with range (0, infinity)
133 * @return True, if succeeded
134 */
135 static bool testDeInterleave3Channel8Bit45Elements(const double testDuration);
136
137 /**
138 * Interleave test for 8 bit 3 channels data with 48 elements.
139 * @param testDuration Number of seconds for each test, with range (0, infinity)
140 * @return True, if succeeded
141 */
142 static bool testInterleave3Channel8Bit48Elements(const double testDuration);
143
144 /**
145 * Reverse channel order test for 8 bit 2 channels data with 32 elements.
146 * @param testDuration Number of seconds for each test, with range (0, infinity)
147 * @return True, if succeeded
148 */
149 static bool testReverseChannelOrder2Channel8Bit32Elements(const double testDuration);
150
151 /**
152 * Reverse channel order test for 8 bit 3 channels data with 48 elements.
153 * @param testDuration Number of seconds for each test, with range (0, infinity)
154 * @return True, if succeeded
155 */
156 static bool testReverseChannelOrder3Channel8Bit48Elements(const double testDuration);
157
158 /**
159 * Reverse channel order test for 8 bit 4 channels data with 64 elements.
160 * @param testDuration Number of seconds for each test, with range (0, infinity)
161 * @return True, if succeeded
162 */
163 static bool testReverseChannelOrder4Channel8Bit64Elements(const double testDuration);
164
165 /**
166 * Reverse channel order and swap test for 8 bit 3 channels data with 48 elements.
167 * @return True, if succeeded
168 */
170
171 /**
172 * Reverse element order test for 48 elements with 8 bit per element.
173 * @return True, if succeeded
174 */
176
177 /**
178 * Reverse element order and swap test for 48 elements with 8 bit per element.
179 * @return True, if succeeded
180 */
182
183 /**
184 * Sum of 1x16 elements of an interleaved image with 1 channels and 8 bit per channel.
185 * @return True, if succeeded
186 */
188
189 /**
190 * Sum of 1x15 elements of an interleaved image with 1 channels and 8 bit per channel.
191 * @param testDuration Number of seconds for each test, with range (0, infinity)
192 * @return True, if succeeded
193 */
194 static bool testSumInterleave1Channel8Bit15Elements(const double testDuration);
195
196 /**
197 * Sum of 3x16 elements of an interleaved image with 3 channels and 8 bit per channel.
198 * @return True, if succeeded
199 */
201
202 /**
203 * Sum of 3x15 elements of an interleaved image with 3 channels and 8 bit per channel.
204 * @return True, if succeeded
205 */
207
208 /**
209 * Tests the interpolation function for 3 channels and 24 bit per pixel image data.
210 * @param testDuration Number of seconds for each test, with range (0, infinity)
211 * @return True, if succeeded
212 */
213 static bool testInterpolation1Channel8Bit15Elements(const double testDuration);
214
215 /**
216 * Tests the interpolation function for 3 channels and 24 bit per pixel image data.
217 * @param testDuration Number of seconds for each test, with range (0, infinity)
218 * @return True, if succeeded
219 */
220 static bool testInterpolation3Channel24Bit12Elements(const double testDuration);
221
222 /**
223 * Tests the function adding an offset for 16 bit signed integer right shifts to perform a division by 2.
224 * @param testDuration Number of seconds for each test, with range (0, infinity)
225 * @return True, if succeeded
226 */
227 static bool testAddOffsetBeforeRightShiftDivisionByTwoSigned16Bit(const double testDuration);
228
229 /**
230 * Tests the function adding an offset for 16 bit signed integer right shifts to perform a division.
231 * @param testDuration Number of seconds for each test, with range (0, infinity)
232 * @return True, if succeeded
233 */
234 static bool testAddOffsetBeforeRightShiftDivisionSigned16Bit(const double testDuration);
235
236 /**
237 * Tests the function dividing eight int16_t value by right shifts with rounding.
238 * @param testDuration Number of seconds for each test, with range (0, infinity)
239 * @return True, if succeeded
240 */
241 static bool testRoundedDivideByRightShiftSigned16Bit(const double testDuration);
242
243 /**
244 * Tests the function adding an offset for 32 bit signed integer right shifts to perform a division by 2.
245 * @param testDuration Number of seconds for each test, with range (0, infinity)
246 * @return True, if succeeded
247 */
248 static bool testAddOffsetBeforeRightShiftDivisionByTwoSigned32Bit(const double testDuration);
249
250 /**
251 * Tests the function adding an offset for 32 bit signed integer right shifts to perform a division.
252 * @param testDuration Number of seconds for each test, with range (0, infinity)
253 * @return True, if succeeded
254 */
255 static bool testAddOffsetBeforeRightShiftDivisionSigned32Bit(const double testDuration);
256
257 /**
258 * Tests the function multiplying eight 16 bit integer values.
259 * @param testDuration Number of seconds for each test, with range (0, infinity)
260 * @return True, if succeeded
261 */
262 static bool testMultiplyInt8x16ToInt32x8(const double testDuration);
263
264 /**
265 * Tests the function multiplying and accumulating eight 16 bit integer values.
266 * @param testDuration Number of seconds for each test, with range (0, infinity)
267 * @return True, if succeeded
268 */
269 static bool testMultiplyInt8x16ToInt32x8AndAccumulate(const double testDuration);
270
271 private:
272
273 /**
274 * Average of 2x elements pixel of a gray scale image with 8 bit using SSE function.
275 * @param testDuration Number of seconds for each test, with range (0, infinity)
276 * @param elements element size of SSE function {8, 16, 32}
277 * @return True, if all result are valid
278 */
279 static bool testAverageElements1Channel8Bit2x2(const double testDuration, const unsigned int elements);
280
281 /**
282 * Average of 2x elements pixel of a binary image with 8 bit using SSE function.
283 * @param testDuration Number of seconds for each test, with range (0, infinity)
284 * @param elements element size of SSE function {16}
285 * @param sumThreshold Minimal sum threshold of four pixels to result in a pixel with value 255
286 * @return True, if all result are valid
287 */
288 static bool testAverageElementsBinary1Channel8Bit2x2(const double testDuration, const unsigned int elements, const unsigned int sumThreshold = 640u);
289
290 /**
291 * Average of 2x elements pixel of a gray scale image with 32 bit using SSE function.
292 * @param testDuration Number of seconds for each test, with range (0, infinity)
293 * @param elements element size of SSE function {8}
294 * @return True, if all result are valid
295 */
296 static bool testAverageElements1Channel32Bit2x2(const double testDuration, const unsigned int elements);
297
298 /**
299 * Average of 3x elements pixel of a gray scale image with 8 bit using SSE function.
300 * @param testDuration Number of seconds for each test, with range (0, infinity)
301 * @param elements element size of SSE function {30}
302 * @return True, if all result are valid
303 */
304 static bool testAverageElements1Channel8Bit3x3(const double testDuration, const unsigned int elements);
305
306 /**
307 * Average of 2x 'elements/2' pixel of a gray scale image with alpha channel and 8 bit per channel using SSE function.
308 * @param testDuration Number of seconds for each test, with range (0, infinity)
309 * @param elements element size of SSE function {8}
310 * @return True, if all result are valid
311 */
312 static bool testAverageElements2Channel16Bit2x2(const double testDuration, const unsigned int elements);
313
314 /**
315 * Average of 2x 'elements/2' pixel of a gray scale image with alpha channel and 32 bit per channel using SSE function.
316 * @param testDuration Number of seconds for each test, with range (0, infinity)
317 * @param elements element size of SSE function {8, 16, 32}
318 * @return True, if all result are valid
319 */
320 static bool testAverageElements2Channel64Bit2x2(const double testDuration, const unsigned int elements);
321
322 /**
323 * Average of 2x 'elements/3' pixel of a 3 channel image and 8 bit per channel using SSE function.
324 * @param testDuration Number of seconds for each test, with range (0, infinity)
325 * @param elements element size of SSE function {12, 24}
326 * @return True, if all result are valid
327 */
328 static bool testAverageElements3Channel24Bit2x2(const double testDuration, const unsigned int elements);
329
330 /**
331 * Average of 2x 'elements/3' pixel of a 3 channel image and 32 bit per channel using SSE function.
332 * @param testDuration Number of seconds for each test, with range (0, infinity)
333 * @param elements element size of SSE function {6}
334 * @return True, if all result are valid
335 */
336 static bool testAverageElements3Channel96Bit2x2(const double testDuration, const unsigned int elements);
337
338 /**
339 * Average of 2x 'elements/4' pixel of a 4 channel image and 8 bit per channel using SSE function.
340 * @param testDuration Number of seconds for each test, with range (0, infinity)
341 * @param elements element size of SSE function {16, 32}
342 * @return True, if all result are valid
343 */
344 static bool testAverageElements4Channel32Bit2x2(const double testDuration, const unsigned int elements);
345
346 /**
347 * Average of 2x 'elements/4' pixel of a 4 channel image and 32 bit per channel using SSE function.
348 * @param testDuration Number of seconds for each test, with range (0, infinity)
349 * @param elements element size of SSE function {8}
350 * @return True, if all result are valid
351 */
352 static bool testAverageElements4Channel128Bit2x2(const double testDuration, const unsigned int elements);
353
354 /**
355 * Average of 2x2 pixel block of a gray scale image with 8 bit.
356 * @param elements length of averageLine buffer
357 * @param imageLine0Buffer8Bit buffer of even gray image lines
358 * @param imageLine1Buffer8Bit buffer of odd gray image lines
359 * @param averageLine resulting average image line
360 * @return True, if succeeded
361 */
362 static bool referenceAverageElements1Channel8Bit2x2(const unsigned int elements, const uint8_t* const imageLine0Buffer8Bit, const uint8_t* const imageLine1Buffer8Bit, uint8_t* const averageLine);
363
364 /**
365 * Average of 2x2 pixel block of an binary image with 8 bit.
366 * @param elements length of averageLine buffer
367 * @param imageLine0Buffer8Bit buffer of even binary image lines
368 * @param imageLine1Buffer8Bit buffer of odd binary image lines
369 * @param averageLine resulting average image line
370 * @param sumThreshold Minimal sum threshold of four pixels to result in a pixel with value 255
371 * @return True, if succeeded
372 */
373 static bool referenceAverageElementsBinary1Channel8Bit2x2(const unsigned int elements, const uint8_t* const imageLine0Buffer8Bit, const uint8_t* const imageLine1Buffer8Bit, uint8_t* const averageLine, const unsigned int sumThreshold = 766u);
374
375 /**
376 * Average of 3x3 pixel block of a gray scale image with 8 bit.
377 * @param elements length of averageLine buffer
378 * @param imageLine0Buffer8Bit buffer of even gray image lines
379 * @param imageLine1Buffer8Bit buffer of odd gray image lines
380 * @param imageLine2Buffer8Bit buffer of odd gray image lines
381 * @param averageLine resulting average image line
382 * @return True, if succeeded
383 */
384 static bool referenceAverageElements1Channel8Bit3x3(const unsigned int elements, const uint8_t* const imageLine0Buffer8Bit, const uint8_t* const imageLine1Buffer8Bit, const uint8_t* const imageLine2Buffer8Bit, uint8_t* const averageLine);
385
386 /**
387 * Average of 2x2 pixel block of a gray scale image with 32 bit.
388 * @param elements length of averageLine buffer
389 * @param imageLine0Buffer32Bit buffer of even gray image lines
390 * @param imageLine1Buffer32Bit buffer of odd gray image lines
391 * @param averageLine resulting average image line
392 * @return True, if succeeded
393 */
394 static bool referenceAverageElements1Channel32Bit2x2(const unsigned int elements, const float* const imageLine0Buffer32Bit, const float* const imageLine1Buffer32Bit, float* const averageLine);
395
396 /**
397 * Average of 2x2 pixel block of a gray scale image with alpha channel and 8 bit per channel.
398 * @param elements length of averageLine buffer
399 * @param imageLine0Buffer8Bit buffer of even image lines
400 * @param imageLine1Buffer8Bit buffer of odd image lines
401 * @param averageLine resulting average image line
402 * @return True, if succeeded
403 */
404 static bool referenceAverageElements2Channel16Bit2x2(const unsigned int elements, const uint8_t* const imageLine0Buffer8Bit, const uint8_t* const imageLine1Buffer8Bit, uint8_t* const averageLine);
405
406 /**
407 * Average of 2x2 pixel block of a gray scale image with alpha channel and 32 bit per channel.
408 * @param elements length of averageLine buffer
409 * @param imageLine0Buffer32Bit buffer of even image lines
410 * @param imageLine1Buffer32Bit buffer of odd image lines
411 * @param averageLine resulting average image line
412 * @return True, if succeeded
413 */
414 static bool referenceAverageElements2Channel64Bit2x2(const unsigned int elements, const float* const imageLine0Buffer32Bit, const float* const imageLine1Buffer32Bit, float* const averageLine);
415
416 /**
417 * Average of 2x2 pixel block of an 3 channel image and 8 bit per channel.
418 * @param elements length of averageLine buffer
419 * @param imageLine0Buffer8Bit buffer of even image lines
420 * @param imageLine1Buffer8Bit buffer of odd image lines
421 * @param averageLine resulting average image line
422 * @return True, if succeeded
423 */
424 static bool referenceAverageElements3Channel24Bit2x2(const unsigned int elements, const uint8_t* const imageLine0Buffer8Bit, const uint8_t* const imageLine1Buffer8Bit, uint8_t* const averageLine);
425
426 /**
427 * Average of 2x2 pixel block of an 3 channel image and 32 bit per channel.
428 * @param elements length of averageLine buffer
429 * @param imageLine0Buffer32Bit buffer of even image lines
430 * @param imageLine1Buffer32Bit buffer of odd image lines
431 * @param averageLine resulting average image line
432 * @return True, if succeeded
433 */
434 static bool referenceAverageElements3Channel96Bit2x2(const unsigned int elements, const float* const imageLine0Buffer32Bit, const float* const imageLine1Buffer32Bit, float* const averageLine);
435
436 /**
437 * Average of 2x2 pixel block of an 4 channel image and 8 bit per channel.
438 * @param elements length of averageLine buffer
439 * @param imageLine0Buffer8Bit buffer of even image lines
440 * @param imageLine1Buffer8Bit buffer of odd image lines
441 * @param averageLine resulting average image line
442 * @return True, if succeeded
443 */
444 static bool referenceAverageElements4Channel32Bit2x2(const unsigned int elements, const uint8_t* const imageLine0Buffer8Bit, const uint8_t* const imageLine1Buffer8Bit, uint8_t* const averageLine);
445
446 /**
447 * Average of 2x2 pixel block of an 4 channel image and 32 bit per channel.
448 * @param elements length of averageLine buffer
449 * @param imageLine0Buffer32Bit buffer of even image lines
450 * @param imageLine1Buffer32Bit buffer of odd image lines
451 * @param averageLine resulting average image line
452 * @return True, if succeeded
453 */
454 static bool referenceAverageElements4Channel128Bit2x2(const unsigned int elements, const float* const imageLine0Buffer32Bit, const float* const imageLine1Buffer32Bit, float* const averageLine);
455
456 /**
457 * Tests the SSE store 1 channel 8-bit 8 elements to 3 channels 24 elements function.
458 * @param testDuration Number of seconds for each test, with range (0, infinity)
459 * @return True, if succeeded
460 */
461 static bool testStore1Channel8Bit8ElementsTo3Channels24Elements(const double testDuration);
462
463 /**
464 * Tests the SSE store 1 channel 8-bit 8 elements to 4 channels 32 elements with constant last channel function.
465 * @param testDuration Number of seconds for each test, with range (0, infinity)
466 * @return True, if succeeded
467 */
469};
470
471}
472
473}
474
475}
476
477#endif // OCEAN_HARDWARE_SSE_VERSION >= 41
478
479#endif // META_OCEAN_TEST_TESTCV_TEST_SSE_H
This class implements a Computer Vision SSE test.
Definition TestSSE.h:29
static bool testAverageElements4Channel32Bit2x2(const double testDuration, const unsigned int elements)
Average of 2x 'elements/4' pixel of a 4 channel image and 8 bit per channel using SSE function.
static bool testAverageElements1Channel32Bit2x2(const double testDuration, const unsigned int elements)
Average of 2x elements pixel of a gray scale image with 32 bit using SSE function.
static bool testDeInterleave3Channel8Bit45Elements(const double testDuration)
De-interleave test for 8 bit 3 channels data with 45 elements.
static bool referenceAverageElements3Channel96Bit2x2(const unsigned int elements, const float *const imageLine0Buffer32Bit, const float *const imageLine1Buffer32Bit, float *const averageLine)
Average of 2x2 pixel block of an 3 channel image and 32 bit per channel.
static bool testAveraging1Channel8Bit2x2(const double testDuration)
static bool testAverageElementsBinary1Channel8Bit2x2(const double testDuration, const unsigned int elements, const unsigned int sumThreshold=640u)
Average of 2x elements pixel of a binary image with 8 bit using SSE function.
static bool testAveraging4Channel128Bit2x2(const double testDuration)
static bool referenceAverageElementsBinary1Channel8Bit2x2(const unsigned int elements, const uint8_t *const imageLine0Buffer8Bit, const uint8_t *const imageLine1Buffer8Bit, uint8_t *const averageLine, const unsigned int sumThreshold=766u)
Average of 2x2 pixel block of an binary image with 8 bit.
static bool testAverageElements4Channel128Bit2x2(const double testDuration, const unsigned int elements)
Average of 2x 'elements/4' pixel of a 4 channel image and 32 bit per channel using SSE function.
static bool testSumInterleave3Channel8Bit45Elements()
Sum of 3x15 elements of an interleaved image with 3 channels and 8 bit per channel.
static bool referenceAverageElements2Channel64Bit2x2(const unsigned int elements, const float *const imageLine0Buffer32Bit, const float *const imageLine1Buffer32Bit, float *const averageLine)
Average of 2x2 pixel block of a gray scale image with alpha channel and 32 bit per channel.
static bool testAverageElements2Channel64Bit2x2(const double testDuration, const unsigned int elements)
Average of 2x 'elements/2' pixel of a gray scale image with alpha channel and 32 bit per channel usin...
static bool testStore1Channel8Bit8ElementsTo3Channels24Elements(const double testDuration)
Tests the SSE store 1 channel 8-bit 8 elements to 3 channels 24 elements function.
static bool testInterpolation3Channel24Bit12Elements(const double testDuration)
Tests the interpolation function for 3 channels and 24 bit per pixel image data.
static bool testReverseChannelOrder2Channel8Bit32Elements(const double testDuration)
Reverse channel order test for 8 bit 2 channels data with 32 elements.
static bool referenceAverageElements1Channel8Bit3x3(const unsigned int elements, const uint8_t *const imageLine0Buffer8Bit, const uint8_t *const imageLine1Buffer8Bit, const uint8_t *const imageLine2Buffer8Bit, uint8_t *const averageLine)
Average of 3x3 pixel block of a gray scale image with 8 bit.
static bool testDeInterleave3Channel8Bit48Elements(const double testDuration)
De-interleave test for 8 bit 3 channels data with 48 elements.
static bool testMultiplyInt8x16ToInt32x8(const double testDuration)
Tests the function multiplying eight 16 bit integer values.
static bool testAddOffsetBeforeRightShiftDivisionByTwoSigned32Bit(const double testDuration)
Tests the function adding an offset for 32 bit signed integer right shifts to perform a division by 2...
static bool testAveraging4Channel32Bit2x2(const double testDuration)
static bool testAddOffsetBeforeRightShiftDivisionSigned16Bit(const double testDuration)
Tests the function adding an offset for 16 bit signed integer right shifts to perform a division.
static bool testSumInterleave3Channel8Bit48Elements()
Sum of 3x16 elements of an interleaved image with 3 channels and 8 bit per channel.
static bool testSwapReversedElements8Bit48Elements()
Reverse element order and swap test for 48 elements with 8 bit per element.
static bool referenceAverageElements3Channel24Bit2x2(const unsigned int elements, const uint8_t *const imageLine0Buffer8Bit, const uint8_t *const imageLine1Buffer8Bit, uint8_t *const averageLine)
Average of 2x2 pixel block of an 3 channel image and 8 bit per channel.
static bool testReverseChannelOrder4Channel8Bit64Elements(const double testDuration)
Reverse channel order test for 8 bit 4 channels data with 64 elements.
static bool testInterleave3Channel8Bit48Elements(const double testDuration)
Interleave test for 8 bit 3 channels data with 48 elements.
static bool referenceAverageElements1Channel8Bit2x2(const unsigned int elements, const uint8_t *const imageLine0Buffer8Bit, const uint8_t *const imageLine1Buffer8Bit, uint8_t *const averageLine)
Average of 2x2 pixel block of a gray scale image with 8 bit.
static bool testDeInterleave3Channel8Bit15Elements(const double testDuration)
De-interleave test for 8 bit 3 channels data with 15 elements.
static bool testReverseElements8Bit48Elements()
Reverse element order test for 48 elements with 8 bit per element.
static bool testReverseChannelOrder3Channel8Bit48Elements(const double testDuration)
Reverse channel order test for 8 bit 3 channels data with 48 elements.
static bool testAveraging2Channel64Bit2x2(const double testDuration)
static bool referenceAverageElements1Channel32Bit2x2(const unsigned int elements, const float *const imageLine0Buffer32Bit, const float *const imageLine1Buffer32Bit, float *const averageLine)
Average of 2x2 pixel block of a gray scale image with 32 bit.
static bool testAveraging1Channel8Bit3x3(const double testDuration)
static bool testAverageElements1Channel8Bit2x2(const double testDuration, const unsigned int elements)
Average of 2x elements pixel of a gray scale image with 8 bit using SSE function.
static bool testAveraging2Channel16Bit2x2(const double testDuration)
static bool testDeInterleave3Channel8Bit24Elements(const double testDuration)
De-interleave test for 8 bit 3 channels data with 24 elements.
static bool testStore1Channel8Bit8ElementsTo4Channels32ElementsWithConstantLastChannel(const double testDuration)
Tests the SSE store 1 channel 8-bit 8 elements to 4 channels 32 elements with constant last channel f...
static bool testAverageElements1Channel8Bit3x3(const double testDuration, const unsigned int elements)
Average of 3x elements pixel of a gray scale image with 8 bit using SSE function.
static bool testSumInterleave1Channel8Bit16Elements()
Sum of 1x16 elements of an interleaved image with 1 channels and 8 bit per channel.
static bool testSwapReversedChannelOrder3Channel8Bit48Elements()
Reverse channel order and swap test for 8 bit 3 channels data with 48 elements.
static bool testAveraging3Channel24Bit2x2(const double testDuration)
static bool testRoundedDivideByRightShiftSigned16Bit(const double testDuration)
Tests the function dividing eight int16_t value by right shifts with rounding.
static bool testAverageElements2Channel16Bit2x2(const double testDuration, const unsigned int elements)
Average of 2x 'elements/2' pixel of a gray scale image with alpha channel and 8 bit per channel using...
static bool testAveraging3Channel96Bit2x2(const double testDuration)
static bool testAverageElements3Channel96Bit2x2(const double testDuration, const unsigned int elements)
Average of 2x 'elements/3' pixel of a 3 channel image and 32 bit per channel using SSE function.
static bool testAveraging1Channel32Bit2x2(const double testDuration)
static bool referenceAverageElements4Channel32Bit2x2(const unsigned int elements, const uint8_t *const imageLine0Buffer8Bit, const uint8_t *const imageLine1Buffer8Bit, uint8_t *const averageLine)
Average of 2x2 pixel block of an 4 channel image and 8 bit per channel.
static bool testAverageElements3Channel24Bit2x2(const double testDuration, const unsigned int elements)
Average of 2x 'elements/3' pixel of a 3 channel image and 8 bit per channel using SSE function.
static bool testAddOffsetBeforeRightShiftDivisionSigned32Bit(const double testDuration)
Tests the function adding an offset for 32 bit signed integer right shifts to perform a division.
static bool referenceAverageElements4Channel128Bit2x2(const unsigned int elements, const float *const imageLine0Buffer32Bit, const float *const imageLine1Buffer32Bit, float *const averageLine)
Average of 2x2 pixel block of an 4 channel image and 32 bit per channel.
static bool referenceAverageElements2Channel16Bit2x2(const unsigned int elements, const uint8_t *const imageLine0Buffer8Bit, const uint8_t *const imageLine1Buffer8Bit, uint8_t *const averageLine)
Average of 2x2 pixel block of a gray scale image with alpha channel and 8 bit per channel.
static bool test(const double testDuration)
Tests the entire SSE class.
static bool testMultiplyInt8x16ToInt32x8AndAccumulate(const double testDuration)
Tests the function multiplying and accumulating eight 16 bit integer values.
static bool testSumInterleave1Channel8Bit15Elements(const double testDuration)
Sum of 1x15 elements of an interleaved image with 1 channels and 8 bit per channel.
static bool testAddOffsetBeforeRightShiftDivisionByTwoSigned16Bit(const double testDuration)
Tests the function adding an offset for 16 bit signed integer right shifts to perform a division by 2...
static bool testInterpolation1Channel8Bit15Elements(const double testDuration)
Tests the interpolation function for 3 channels and 24 bit per pixel image data.
static bool testBinaryAveraging1Channel8Bit2x2(const double testDuration)
The namespace covering the entire Ocean framework.
Definition Accessor.h:15