mirror of
https://github.com/opencv/opencv.git
synced 2024-11-30 06:10:02 +08:00
e90e0ef9aa
Lab, Luv and XYZ conversions rewritten to wide intrinsics (#14106) * rgb2xyz<float> re-vectorized * rgb2xyz_i vectorized for ushort and uchar * xyz2rgb<float> vectorized * xyz2rgb_i vectorized for both uchar and ushort * intermediate conversions (int->float) rewritten * packed rgb2luv rewritten * (some) float conversions rewritten * burnt volatile int _3 and similar * RGB2Lab_b rewritten * tests: logging made better * RGB2Lab_f (LRGB path) rewritten * Lab2RGBfloat rewritten * Lab2RGBinteger and Lab2RGB_b rewritten to wide universal intrinsics * Luv2RGBinteger wide vectorized * RGB2Lab_b fixed: v_sub_wrap instead of saturated sub * warnings fixed * trying to fix compilation on older compilers * using 16x8 registers for 8-element dot product * cleanup added * splineInterpolate: loop unrolled, perf fix for f32x4 * Lab2RGBfloat: grab 2x more data to process on f32x4 * nrepeats for Luv2RGBfloat, +20% perf * minor * nrepeats to RGB2Lab_f * Lab2RGBinteger: no tab for linear BGR * nrepeats for RGB2Luvfloat * Luv2RGBinteger: no tab for linear RGB * +10% more to perf of Luv2RGBfloat * nrepeats for 256-simd for Lab2RGBfloat * less warnings * BOM removed * CV_SIMD_WIDTH used for lanes number checking * trilinearPackedInterpolate: 128-bit specialization added * fix build; no vx_cleanup(), instrumentation instead |
||
---|---|---|
.. | ||
doc | ||
include/opencv2 | ||
misc/java | ||
perf | ||
src | ||
test | ||
CMakeLists.txt |