Ocean
TestFrameConverter.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_FRAME_CONVERTER_H
9 #define META_OCEAN_TEST_TESTCV_TEST_FRAME_CONVERTER_H
10 
12 
13 #include "ocean/base/Frame.h"
15 #include "ocean/base/Memory.h"
16 #include "ocean/base/RandomI.h"
17 #include "ocean/base/Timestamp.h"
18 #include "ocean/base/Worker.h"
19 
20 #include "ocean/cv/CVUtilities.h"
22 
23 #include <numeric>
24 
25 namespace Ocean
26 {
27 
28 namespace Test
29 {
30 
31 namespace TestCV
32 {
33 
34 /**
35  * This class implements a frame converter test for the function of the basic frame converter.
36  * @ingroup testcv
37  */
38 class OCEAN_TEST_CV_EXPORT TestFrameConverter : protected CV::FrameConverter
39 {
40  public:
41 
42  /**
43  * Tests all frame converter functions.
44  * @param testDuration Number of seconds for each test, with range (0, infinity)
45  * @param worker The worker object to distribute the computation
46  * @return True, if all tests succeeded
47  */
48  static bool test(const double testDuration, Worker& worker);
49 
50  /**
51  * Tests the comfort convert function for a Frame.
52  * @param testDuration Number of seconds for each test, with range (0, infinity)
53  * @return True, if succeeded
54  */
55  static bool testComfortConvert(const double testDuration);
56 
57  /**
58  * Tests the comfort convert and copy function for a Frame.
59  * @param testDuration Number of seconds for each test, with range (0, infinity)
60  * @return True, if succeeded
61  */
62  static bool testComfortConvertAndCopy(const double testDuration);
63 
64  /**
65  * Tests the comfort change function for a Frame.
66  * @param testDuration Number of seconds for each test, with range (0, infinity)
67  * @return True, if succeeded
68  */
69  static bool testComfortChange(const double testDuration);
70 
71  /**
72  * Tests the cast function.
73  * @param testDuration Number of seconds for each test, with range (0, infinity)
74  * @return True, if succeeded
75  */
76  static bool testCast(const double testDuration);
77 
78  /**
79  * Tests the normalized cast function.
80  * @param testDuration Number of seconds for each test, with range (0, infinity)
81  * @return True, if succeeded
82  */
83  static bool testNormalizedCast(const double testDuration);
84 
85  /**
86  * Tests the sub frame function.
87  * @param testDuration Number of seconds for each test, with range (0, infinity)
88  * @return True, if succeeded
89  */
90  static bool testSubFrame(const double testDuration);
91 
92  /**
93  * Tests the sub frame function.
94  * @param testDuration Number of seconds for each test, with range (0, infinity)
95  * @return True, if succeeded
96  */
97  static bool testSubFrameMask(const double testDuration);
98 
99  /**
100  * Tests the patch creator.
101  * @param testDuration Number of seconds for each test, with range (0, infinity)
102  * @return True, if succeeded
103  */
104  static bool testPatchFrame(const double testDuration);
105 
106  /**
107  * Tests the patch creator with mirrored border.
108  * @param testDuration Number of seconds for each test, with range (0, infinity)
109  * @return True, if succeeded
110  */
111  static bool testPatchFrameMirroredBorder(const double testDuration);
112 
113  /**
114  * Test the 1-row-based converter for pixel formats with 3 channels, 2 planes and a 2x2 downsampling of channel 2 and 3, with 6 bit precision.
115  * @param testDuration Number of seconds for each test, with range (0, infinity)
116  * @return True, if the test was successful, otherwise false
117  */
119 
120  /**
121  * Test the 1-row-based converter for pixel formats with 3 channels, 2 planes and a 2x2 downsampling of channel 2 and 3, with 10 bit precision.
122  * @param testDuration Number of seconds for each test, with range (0, infinity)
123  * @return True, if the test was successful, otherwise false
124  */
126 
127  /**
128  * Test the 2-row-based converter for pixel formats with 3 channels, 2 planes and a 2x2 downsampling of channel 2 and 3, with 10 bit precision.
129  * @param testDuration Number of seconds for each test, with range (0, infinity)
130  * @return True, if the test was successful, otherwise false
131  */
133 
134  /**
135  * Test the 2-row-based converter for pixel formats with 3 channels, 2 planes and a 2x2 downsampling of channel 2 and 3, with 10 bit precision.
136  * @param testDuration Number of seconds for each test, with range (0, infinity)
137  * @return True, if the test was successful, otherwise false
138  */
140 
141  /**
142  * Test the 2-row-based converter for pixel formats with 3 channels, 2 planes and a 2x2 downsampling of channel 2 and 3, with 7 bit precision.
143  * @param testDuration Number of seconds for each test, with range (0, infinity)
144  * @return True, if the test was successful, otherwise false
145  */
147 
148  /**
149  * Test the 2-row-based converter for pixel formats with 3 channels, 3 planes and a 2x2 downsampling of channel 2 and 3, with 7 bit precision.
150  * @param testDuration Number of seconds for each test, with range (0, infinity)
151  * @return True, if the test was successful, otherwise false
152  */
154 
155  /**
156  * Test the 1-row-based mapper for pixel formats with 3 planes and 1 channel to 1 plane and 3 channels.
157  * @param testDuration Number of seconds for each test, with range (0, infinity)
158  * @return True, if the test was successful, otherwise false
159  */
161 
162  /**
163  * Test the 1-row-based mapper for pixel formats with 1 plane and 3 channels to 3 planes and 1 channel.
164  * @param testDuration Number of seconds for each test, with range (0, infinity)
165  * @return True, if the test was successful, otherwise false
166  */
168 
169  /**
170  * Test the 1-row-based mapper for pixel formats with 3 channels, 1 planes and a 2x1 downsampling of channel 2 and 3.
171  * @param testDuration Number of seconds for each test, with range (0, infinity)
172  * @return True, if the test was successful, otherwise false
173  */
175 
176  /**
177  * Test the 1-row-based mapper for pixel formats with 3 channels, 1 planes and a 2x1 downsampling of channel 1 and 3.
178  * @param testDuration Number of seconds for each test, with range (0, infinity)
179  * @return True, if the test was successful, otherwise false
180  */
182 
183  /**
184  * Test the 1-row-based mapper for pixel formats with 3 channels, 2 planes and a 2x2 downsampling of channel 2 and 3.
185  * @param testDuration Number of seconds for each test, with range (0, infinity)
186  * @return True, if the test was successful, otherwise false
187  */
189 
190  /**
191  * Test the 2-row-based mapper for pixel formats with 3 channels, 2 planes and a 2x2 downsampling of channel 2 and 3.
192  * @param testDuration Number of seconds for each test, with range (0, infinity)
193  * @return True, if the test was successful, otherwise false
194  */
196 
197  /**
198  * Test the 1-row-based converter for pixel formats with 3 channels, 3 planes and a 2x2 downsampling of channel 2 and 3.
199  * @param testDuration Number of seconds for each test, with range (0, infinity)
200  * @return True, if the test was successful, otherwise false
201  */
203 
204  /**
205  * Test the 2-row-based converter for pixel formats with 3 channels, 3 planes and a 2x2 downsampling of channel 2 and 3.
206  * @param testDuration Number of seconds for each test, with range (0, infinity)
207  * @return True, if the test was successful, otherwise false
208  */
210 
211  /**
212  * Test the 2-row-based converter for pixel formats with 3 channels, 3 planes and a 2x2 downsampling of channel 2 and 3 adding a new target channel.
213  * @param testDuration Number of seconds for each test, with range (0, infinity)
214  * @return True, if the test was successful, otherwise false
215  */
217 
218  /**
219  * Test the 2-row-based converter for pixel formats with 3 channels, 3 planes and a 2x2 downsampling of channel 2 and 3.
220  * @param testDuration Number of seconds for each test, with range (0, infinity)
221  * @return True, if the test was successful, otherwise false
222  */
224 
225  /**
226  * Test the 1-row-based mapper for pixel formats with 3 channels, 2 planes and a 2x2 downsampling of channel 2 and 3.
227  * @param testDuration Number of seconds for each test, with range (0, infinity)
228  * @return True, if the test was successful, otherwise false
229  */
231 
232  /**
233  * Test the 2-row-based mapper for pixel formats with 3 channels, 2 planes and a 2x2 downsampling of channel 2 and 3.
234  * @param testDuration Number of seconds for each test, with range (0, infinity)
235  * @return True, if the test was successful, otherwise false
236  */
238 
239  /**
240  * Test the 1-row-based convert 3-plane to zipped 3-channel function, with 6 bit precision.
241  * @param testDuration Number of seconds for each test, with range (0, infinity)
242  * @return True, if the test was successful, otherwise false
243  */
245 
246  /**
247  * Test the 1-row-based convert zipped 3-channel with 2x1 downsampling to 3-channel function, with 10 bit precision.
248  * @param testDuration Number of seconds for each test, with range (0, infinity)
249  * @return True, if the test was successful, otherwise false
250  */
252 
253  /**
254  * Test the 1-row-based convert zipped 3-channel with 2x1 downsampling to 3-channel function, with 10 bit precision.
255  * @param testDuration Number of seconds for each test, with range (0, infinity)
256  * @return True, if the test was successful, otherwise false
257  */
259 
260  /**
261  * Tests the color space conversion matrices.
262  * @param testDuration Number of seconds for each test, with range (0, infinity)
263  * @return True, if succeeded
264  */
265  static bool testConversionMatrices(const double testDuration);
266 
267  protected:
268 
269  /**
270  * Tests the sub frame function.
271  * @param testDuration Number of seconds for each test, with range (0, infinity)
272  * @return True, if succeeded
273  * @tparam T The data type of the elements to be used
274  */
275  template <typename T>
276  static bool testSubFrame(const double testDuration);
277 
278  /**
279  * Tests the cast function for from 'unsigned char' to a specified data type.
280  * @param width The width of the frame to be tested, with range [1, infinity)
281  * @param height The height of the frame to be tested, with range [1, infinity)
282  * @param channels The number of channels the frame has, with range [1, infinity)
283  * @return True, if succeeded
284  * @tparam T The data type of the target frame
285  */
286  template <typename T>
287  static bool testCast(const unsigned int width, const unsigned int height, const unsigned int channels);
288 
289  /**
290  * Tests the cast function for from 'unsigned char' to a specified data type.
291  * @param width The width of the frame to be tested, with range [1, infinity)
292  * @param height The height of the frame to be tested, with range [1, infinity)
293  * @param channels The number of channels the frame has, with range [1, infinity)
294  * @param normalization The normalization parameter that is applied
295  * @param offset The offset that is added to all values
296  * @return True, if succeeded
297  * @tparam T The data type of the target frame
298  */
299  template <typename T>
300  static bool testNormalizedCast(const unsigned int width, const unsigned int height, const unsigned int channels, const T normalization, const T offset);
301 
302  /**
303  * Tests the patch creator.
304  * @param testDuration Number of seconds for each test, with range (0, infinity)
305  * @return True, if succeeded
306  * @tparam T The element type to be used
307  */
308  template <typename T>
309  static bool testPatchFrame(const double testDuration);
310 
311  /**
312  * Tests the patch creator with mirrored border.
313  * @param testDuration Number of seconds for each test, with range (0, infinity)
314  * @return True, if succeeded
315  * @tparam T The element type to be used
316  * @tparam tChannels The number of frame channels, with range [1, infinity)
317  */
318  template <typename T, unsigned int tChannels>
319  static bool testPatchFrameMirroredBorder(const double testDuration);
320 
321  /**
322  * Validates the sub-frame function.
323  * @param channels Number of data channels of both frames, with range [1, infinity)
324  * @param source The source frame from which the image content has been copied, must be valid
325  * @param sourceWidth Width of the source frame in pixel, with range [1, infinity)
326  * @param sourceHeight Height of the source frame in pixel, with range [1, infinity)
327  * @param target The target frame to which the image content has been copied, must be valid
328  * @param targetWidth Width of the target frame in pixel, with range [1, infinity)
329  * @param targetHeight Height of the target frame in pixel, with range [1, infinity)
330  * @param sourceLeft Horizontal start position of the sub-frame within the source frame, with range [0, sourceWidth - 1]
331  * @param sourceTop Vertical start position of the sub-frame within the source frame, with range [0, sourceHeight - 1]
332  * @param targetLeft Horizontal start position of the sub-frame within the target frame, with range [0, targetWidth - 1]
333  * @param targetTop Vertical start position of the sub-frame within the target frame, with range [0, targetHeight - 1]
334  * @param width The width of the sub-frame in pixel, with range [1, min(sourceWidth - sourceLeft, targetWidth - targetLeft)]
335  * @param height The height of the sub-frame in pixel, with range [1, min(sourceHeight - sourceTop, targetHeight - targetTop)]
336  * @param sourcePaddingElements Optional number of padding elements at the end of each source row, with range [0, infinity)
337  * @param targetPaddingElements Optional number of padding elements at the end of each target row, with range [0, infinity)
338  * @return True, if succeeded
339  * @tparam T The data type of each element
340  */
341  template <typename T>
342  static bool validateSubFrame(const unsigned int channels, const T* source, const unsigned int sourceWidth, const unsigned int sourceHeight, const T* target, const unsigned int targetWidth, const unsigned int targetHeight, const unsigned int sourceLeft, const unsigned int sourceTop, const unsigned int targetLeft, const unsigned int targetTop, const unsigned int width, const unsigned int height, const unsigned int sourcePaddingElements, const unsigned int targetPaddingElements);
343 
344  /**
345  * Validates the sub-frame function supporting a mask.
346  * @param channels Number of data channels of both frames, with range [1, infinity)
347  * @param source The source frame from which the image content has been copied, must be valid
348  * @param sourceWidth Width of the source frame in pixel, with range [1, infinity)
349  * @param sourceHeight Height of the source frame in pixel, with range [1, infinity)
350  * @param originalTarget The copy of the target frame BEFORE the image content has been copied to it, must be valid
351  * @param target The target frame to which the image content has been copied, must be valid
352  * @param targetWidth Width of the target frame in pixel, with range [1, infinity)
353  * @param targetHeight Height of the target frame in pixel, with range [1, infinity)
354  * @param mask The binary mask that is used to indicate which source pixels to copy to the target frame, must be valid, have one channel, and have the same size as the source frame
355  * @param sourceLeft Horizontal start position of the sub-frame within the source frame, with range [0, sourceWidth - 1]
356  * @param sourceTop Vertical start position of the sub-frame within the source frame, with range [0, sourceHeight - 1]
357  * @param targetLeft Horizontal start position of the sub-frame within the target frame, with range [0, targetWidth - 1]
358  * @param targetTop Vertical start position of the sub-frame within the target frame, with range [0, targetHeight - 1]
359  * @param subFrameWidth Width of the sub-frame in pixel, with range [1, min(sourceWidth - sourceLeft, targetWidth - targetLeft)]
360  * @param subFrameHeight Height of the sub-frame in pixel, with range [1, min(sourceHeight - sourceTop, targetHeight - targetTop)]
361  * @param sourcePaddingElements Optional number of padding elements at the end of each source row, with range [0, infinity)
362  * @param targetPaddingElements Optional number of padding elements at the end of each target row, with range [0, infinity)
363  * @param maskPaddingElements Optional number of padding elements at the end of each source mask row, with range [0, infinity)
364  * @param maskValue Optional value which indicates which pixel value should be interpreted as the foreground (and copied)
365  * @return True, if succeeded
366  * @tparam T The data type of each element
367  */
368  template <typename T>
369  static bool validateSubFrameMask(const unsigned int channels, const T* source, const unsigned int sourceWidth, const unsigned int sourceHeight, const T* originalTarget, const T* target, const unsigned int targetWidth, const unsigned int targetHeight, const uint8_t* mask, const unsigned int sourceLeft, const unsigned int sourceTop, const unsigned int targetLeft, const unsigned int targetTop, const unsigned int subFrameWidth, const unsigned int subFrameHeight, const unsigned int sourcePaddingElements, const unsigned int targetPaddingElements, const unsigned int maskPaddingElements, const uint8_t maskValue);
370 };
371 
372 } // namespace TestCV
373 
374 } // namespace Test
375 
376 } // namespace Ocean
377 
378 #endif // META_OCEAN_TEST_TESTCV_TEST_FRAME_CONVERTER_H
This is the base class for all frame converter classes.
Definition: FrameConverter.h:32
This class implements a frame converter test for the function of the basic frame converter.
Definition: TestFrameConverter.h:39
static bool testConvertOneRow_3Planes1Channel_To_1Plane3Channels_8BitPerChannel_Precision6Bit(const double testDuration)
Test the 1-row-based convert 3-plane to zipped 3-channel function, with 6 bit precision.
static bool testMapOneRow_1Plane1ChannelAnd2Planes1ChannelDownsampled2x2_To_1Plane3Channels_8BitPerChannel(const double testDuration)
Test the 1-row-based mapper for pixel formats with 3 channels, 2 planes and a 2x2 downsampling of cha...
static bool testConvertTwoRows_1Plane1ChannelAnd2Planes1ChannelDownsampled2x2_To_1Plane3Channels_8BitPerChannel_Precision10Bit(const double testDuration)
Test the 2-row-based converter for pixel formats with 3 channels, 3 planes and a 2x2 downsampling of ...
static bool testMapOneRow_1Plane3Channels_To_3Plane1Channel_8BitPerChannel(const double testDuration)
Test the 1-row-based mapper for pixel formats with 1 plane and 3 channels to 3 planes and 1 channel.
static bool testPatchFrame(const double testDuration)
Tests the patch creator.
static bool testCast(const unsigned int width, const unsigned int height, const unsigned int channels)
Tests the cast function for from 'unsigned char' to a specified data type.
static bool testNormalizedCast(const double testDuration)
Tests the normalized cast function.
static bool testMapOneRow_1Plane3ChannelsWith2ChannelsDownsampled2x1BackIsDownsampled_To_1Plane3Channels_8BitPerChannel(const double testDuration)
Test the 1-row-based mapper for pixel formats with 3 channels, 1 planes and a 2x1 downsampling of cha...
static bool testSubFrame(const double testDuration)
Tests the sub frame function.
static bool testMapOneRow_3Plane1Channel_To_1Plane3Channels_8BitPerChannel(const double testDuration)
Test the 1-row-based mapper for pixel formats with 3 planes and 1 channel to 1 plane and 3 channels.
static bool testMapOneRow_1Plane1ChannelAnd1Plane2ChannelsDownsampled2x2_To_1Plane3Channels_8BitPerChannel(const double testDuration)
Test the 1-row-based mapper for pixel formats with 3 channels, 2 planes and a 2x2 downsampling of cha...
static bool testConvertOneRow_1Plane1ChannelAnd2Planes1ChannelDownsampled2x2_To_1Plane3Channels_8BitPerChannel_Precision10Bit(const double testDuration)
Test the 1-row-based converter for pixel formats with 3 channels, 3 planes and a 2x2 downsampling of ...
static bool testComfortChange(const double testDuration)
Tests the comfort change function for a Frame.
static bool validateSubFrameMask(const unsigned int channels, const T *source, const unsigned int sourceWidth, const unsigned int sourceHeight, const T *originalTarget, const T *target, const unsigned int targetWidth, const unsigned int targetHeight, const uint8_t *mask, const unsigned int sourceLeft, const unsigned int sourceTop, const unsigned int targetLeft, const unsigned int targetTop, const unsigned int subFrameWidth, const unsigned int subFrameHeight, const unsigned int sourcePaddingElements, const unsigned int targetPaddingElements, const unsigned int maskPaddingElements, const uint8_t maskValue)
Validates the sub-frame function supporting a mask.
static bool testPatchFrame(const double testDuration)
Tests the patch creator.
static bool test(const double testDuration, Worker &worker)
Tests all frame converter functions.
static bool testPatchFrameMirroredBorder(const double testDuration)
Tests the patch creator with mirrored border.
static bool testConversionMatrices(const double testDuration)
Tests the color space conversion matrices.
static bool testConvertOneRow_1Plane3ChannelsWith2ChannelsDownsampled2x1BackIsDownsampled_To_1Plane3Channels_8BitPerChannel_Precision10Bit(const double testDuration)
Test the 1-row-based convert zipped 3-channel with 2x1 downsampling to 3-channel function,...
static bool testConvertTwoRows_1Plane1ChannelAnd2Planes1ChannelDownsampled2x2_To_1Plane3Channels_8BitPerChannel_Precision6Bit(const double testDuration)
Test the 2-row-based converter for pixel formats with 3 channels, 3 planes and a 2x2 downsampling of ...
static bool testConvertOneRow_1Plane1ChannelAnd1Plane2ChannelsDownsampled2x2_To_1Plane3Channels_8BitPerChannel_Precision10Bit(const double testDuration)
Test the 1-row-based converter for pixel formats with 3 channels, 2 planes and a 2x2 downsampling of ...
static bool testConvertOneRow_1Plane1ChannelAnd1Plane2ChannelsDownsampled2x2_To_1Plane3Channels_8BitPerChannel_Precision6Bit(const double testDuration)
Test the 1-row-based converter for pixel formats with 3 channels, 2 planes and a 2x2 downsampling of ...
static bool testMapTwoRows_1Plane1ChannelAnd2Planes1ChannelDownsampled2x2_To_1Plane3Channels_8BitPerChannel(const double testDuration)
Test the 2-row-based mapper for pixel formats with 3 channels, 2 planes and a 2x2 downsampling of cha...
static bool testMapTwoRows_1Plane1ChannelAnd1Plane2ChannelsDownsampled2x2_To_1Plane3Channels_8BitPerChannel(const double testDuration)
Test the 2-row-based mapper for pixel formats with 3 channels, 2 planes and a 2x2 downsampling of cha...
static bool testComfortConvert(const double testDuration)
Tests the comfort convert function for a Frame.
static bool testNormalizedCast(const unsigned int width, const unsigned int height, const unsigned int channels, const T normalization, const T offset)
Tests the cast function for from 'unsigned char' to a specified data type.
static bool testConvertTwoRows_1Plane1ChannelAnd2Planes1ChannelDownsampled2x2_To_1Plane4Channels_8BitPerChannel_Precision6Bit(const double testDuration)
Test the 2-row-based converter for pixel formats with 3 channels, 3 planes and a 2x2 downsampling of ...
static bool testSubFrame(const double testDuration)
Tests the sub frame function.
static bool testComfortConvertAndCopy(const double testDuration)
Tests the comfort convert and copy function for a Frame.
static bool testConvertOneRow_1Plane3ChannelsWith2ChannelsDownsampled2x1FrontIsDownsampled_To_1Plane3Channels_8BitPerChannel_Precision10Bit(const double testDuration)
Test the 1-row-based convert zipped 3-channel with 2x1 downsampling to 3-channel function,...
static bool testConvertTwoRows_1Plane1ChannelAnd1Plane2ChannelsDownsampled2x2_To_1Plane3Channels_8BitPerChannel_Precision6Bit(const double testDuration)
Test the 2-row-based converter for pixel formats with 3 channels, 2 planes and a 2x2 downsampling of ...
static bool testPatchFrameMirroredBorder(const double testDuration)
Tests the patch creator with mirrored border.
static bool testMapOneRow_1Plane3ChannelsWith2ChannelsDownsampled2x1FrontIsDownsampled_To_1Plane3Channels_8BitPerChannel(const double testDuration)
Test the 1-row-based mapper for pixel formats with 3 channels, 1 planes and a 2x1 downsampling of cha...
static bool testConvertTwoRows_1Plane3Channels_To_1Plane1ChannelAnd1Plane2ChannelsDownsampled2x2_8BitPerChannel_Precision7Bit(const double testDuration)
Test the 2-row-based converter for pixel formats with 3 channels, 2 planes and a 2x2 downsampling of ...
static bool testConvertTwoRows_1Plane1ChannelAnd1Plane2ChannelsDownsampled2x2_To_1Plane3Channels_8BitPerChannel_Precision10Bit(const double testDuration)
Test the 2-row-based converter for pixel formats with 3 channels, 2 planes and a 2x2 downsampling of ...
static bool testSubFrameMask(const double testDuration)
Tests the sub frame function.
static bool testCast(const double testDuration)
Tests the cast function.
static bool validateSubFrame(const unsigned int channels, const T *source, const unsigned int sourceWidth, const unsigned int sourceHeight, const T *target, const unsigned int targetWidth, const unsigned int targetHeight, const unsigned int sourceLeft, const unsigned int sourceTop, const unsigned int targetLeft, const unsigned int targetTop, const unsigned int width, const unsigned int height, const unsigned int sourcePaddingElements, const unsigned int targetPaddingElements)
Validates the sub-frame function.
static bool testConvertTwoRows_1Plane3Channels_To_1Plane1ChannelAnd2Planes1ChannelsDownsampled2x2_8BitPerChannel_Precision7Bit(const double testDuration)
Test the 2-row-based converter for pixel formats with 3 channels, 3 planes and a 2x2 downsampling of ...
This class implements a worker able to distribute function calls over different threads.
Definition: Worker.h:33
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15