diff options
author | Isabella Gottardi <isabella.gottardi@arm.com> | 2017-07-04 11:21:28 +0100 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-09-17 14:17:31 +0100 |
commit | 6203153b25fda2c4b8d94fe71337d1145a36c132 (patch) | |
tree | aee1e7db73d09eabf01ed8fb7680f98f97e07c93 /tests/validation/Reference.cpp | |
parent | d6253602ec7ebcbe6adb0acc51a97a5d8c167495 (diff) | |
download | ComputeLibrary-6203153b25fda2c4b8d94fe71337d1145a36c132.tar.gz |
COMPMID-424 Implemented reference implementation and validation tests (NEON and CL) for Warp Perspective
Changed the behaviour in NEWarpKernel for border mode replicate and constant to stick with the VX specs.
When the new coords are out of the valid region, the output will be computed using the values from the border.
In the validation tests the validate will be called with tolerance_value 1 and tolerance_number 0.2%, due to some float arithmetic related mismatches.
Change-Id: Id4f9d0ef87178f8f8fd38ee17fee0e6f4beb85cd
Reviewed-on: http://mpd-gerrit.cambridge.arm.com/80283
Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com>
Reviewed-by: Moritz Pflanzer <moritz.pflanzer@arm.com>
Reviewed-by: Steven Niu <steven.niu@arm.com>
Diffstat (limited to 'tests/validation/Reference.cpp')
-rw-r--r-- | tests/validation/Reference.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/validation/Reference.cpp b/tests/validation/Reference.cpp index 621158a80e..0fca661dc4 100644 --- a/tests/validation/Reference.cpp +++ b/tests/validation/Reference.cpp @@ -390,6 +390,22 @@ RawTensor Reference::compute_reference_threshold(const TensorShape &shape, uint8 return ref_dst; } +RawTensor Reference::compute_reference_warp_perspective(const TensorShape &shape, RawTensor &valid_mask, const float *matrix, InterpolationPolicy policy, BorderMode border_mode, + uint8_t constant_border_value) +{ + // Create reference + RawTensor ref_src(shape, DataType::U8); + RawTensor ref_dst(shape, DataType::U8); + + // Fill reference + library->fill_tensor_uniform(ref_src, 0); + + // Compute reference + ReferenceCPP::warp_perspective(ref_src, ref_dst, valid_mask, matrix, policy, border_mode, constant_border_value); + + return ref_dst; +} + RawTensor Reference::compute_reference_batch_normalization_layer(const TensorShape &shape0, const TensorShape &shape1, DataType dt, float epsilon, int fixed_point_position) { // Create reference |