Performance data was obtained on the J721E EVM. EVM warm cycle obtained by profiling the kernel's compute code execution after a cold run of the same code. Please refer to the kernel's documentation for more information about the parameters in the tables shown below.
VXLIB kernels
This section contains tables that depict the expected performance numbers for the VXLIB kernels.
VXLIB_absDiff
| Input0 | Input1 | Output | width | height | strideIn0 | strideIn1 | StrideOut | EVM Cycles | Cycles/pixel |
| uint8_t | uint8_t | uint8_t | 32 | 32 | 32 | 32 | 32 | 112 | 0.11 |
| uint8_t | uint8_t | uint8_t | 64 | 64 | 64 | 64 | 64 | 144 | 0.04 |
| uint8_t | uint8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | 336 | 0.02 |
| uint8_t | uint8_t | uint8_t | 256 | 256 | 256 | 256 | 256 | 1104 | 0.02 |
| int16_t | int16_t | int16_t | 32 | 32 | 32 | 32 | 32 | 114 | 0.11 |
| int16_t | int16_t | int16_t | 64 | 64 | 64 | 64 | 64 | 210 | 0.05 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | 593 | 0.04 |
| int16_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 256 | 2131 | 0.03 |
VXLIB_accumulateImage
| Input | Output | width | height | strideIn0 | strideOut | EVM Cycles | Cycles/pixel |
| uint8_t | uint8_t | 128 | 128 | 128 | 128 | 394 | 0.02 |
| uint8_t | int16_t | 128 | 128 | 128 | 128 | 717 | 0.04 |
| int16_t | int16_t | 32 | 32 | 32 | 32 | 120 | 0.12 |
| uint8_t | uint8_t | 64 | 64 | 64 | 64 | 201 | 0.05 |
| uint8_t | int16_t | 128 | 128 | 128 | 128 | 695 | 0.04 |
| int16_t | int16_t | 128 | 128 | 128 | 128 | 691 | 0.04 |
| uint8_t | uint8_t | 128 | 128 | 128 | 128 | 417 | 0.03 |
| uint8_t | int16_t | 128 | 128 | 128 | 128 | 701 | 0.04 |
| int16_t | int16_t | 32 | 32 | 32 | 32 | 130 | 0.13 |
| uint8_t | int16_t | 128 | 128 | 128 | 128 | 679 | 0.04 |
| int16_t | int16_t | 128 | 128 | 128 | 128 | 678 | 0.04 |
VXLIB_accumulateSquareImage
| dTypeIn | dTypeOut | width | height | strideIn0 | strideOut | EVM Cycles | Cycles/Pixel |
| uint8_t | int16_t | 128 | 128 | 128 | 128 | 1197 | 0.07 |
| uint8_t | int16_t | 128 | 128 | 128 | 128 | 1208 | 0.07 |
| uint8_t | int16_t | 128 | 128 | 128 | 128 | 1186 | 0.07 |
| uint8_t | int16_t | 128 | 128 | 128 | 128 | 1204 | 0.07 |
| uint8_t | int16_t | 256 | 256 | 256 | 256 | 4279 | 0.07 |
VXLIB_accumulateWeightImage
| dTypeIn | dTypeOut | dTypeAlpha | width | height | strideIn | strideOut | EVM Cycles | Cycles/Pixel |
| uint8_t | uint8_t | float | 256 | 256 | 256 | 256 | 6341 | 0.10 |
| uint8_t | uint8_t | float | 128 | 128 | 128 | 128 | 1669 | 0.10 |
| uint8_t | uint8_t | float | 64 | 64 | 64 | 64 | 476 | 0.12 |
| uint8_t | uint8_t | float | 32 | 32 | 32 | 32 | 235 | 0.23 |
VXLIB_add
| dTypeIn0 | dTypeIn1 | dTypeOut | width | height | strideIn0 | strideIn1 | strideOut | overFlowPolicy | EVM Cycles | Cycles/Pixel |
| uint8_t | uint8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | Saturate | 380 | 0.02 |
| uint8_t | uint8_t | int16_t | 64 | 64 | 64 | 64 | 64 | Saturate | 237 | 0.06 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | 600 | 0.04 |
| int16_t | int16_t | int16_t | 32 | 32 | 32 | 32 | 32 | Saturate | 122 | 0.12 |
| uint8_t | uint8_t | uint8_t | 64 | 64 | 64 | 64 | 64 | Saturate | 149 | 0.04 |
| uint8_t | uint8_t | int16_t | 64 | 64 | 64 | 64 | 64 | Saturate | 217 | 0.05 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | 600 | 0.04 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | 598 | 0.04 |
| uint8_t | uint8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | Wrap | 383 | 0.02 |
| uint8_t | uint8_t | int16_t | 64 | 64 | 64 | 64 | 64 | Wrap | 244 | 0.06 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | 607 | 0.04 |
| int16_t | int16_t | int16_t | 32 | 32 | 32 | 32 | 32 | Wrap | 128 | 0.13 |
| uint8_t | uint8_t | uint8_t | 64 | 64 | 64 | 64 | 64 | Wrap | 147 | 0.04 |
| uint8_t | uint8_t | int16_t | 64 | 64 | 64 | 64 | 64 | Wrap | 211 | 0.05 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | 600 | 0.04 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | 596 | 0.04 |
VXLIB_addSquare
| dTypeIn0 | dTypeIn1 | dTypeOut | width | height | strideIn0 | strideIn1 | strideOut | shift | EVM Cycles | Cycles/pixel |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | 12 | 1130 | 0.07 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | 13 | 1154 | 0.07 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | 14 | 1158 | 0.07 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | 10 | 1107 | 0.07 |
| uint8_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 256 | 12 | 4227 | 0.06 |
VXLIB_addWeight
| dTypeIn0 | dTypeIn1 | dTypeOut | dTypeAlpha | width | height | strideIn0 | strideIn1 | strideOut | EVM Cycles | Cycles/Pixel |
| uint8_t | uint8_t | uint8_t | float | 256 | 256 | 256 | 256 | 256 | 6273 | 0.10 |
| uint8_t | uint8_t | uint8_t | float | 128 | 128 | 128 | 128 | 128 | 1621 | 0.10 |
| uint8_t | uint8_t | uint8_t | float | 64 | 64 | 64 | 64 | 64 | 483 | 0.12 |
| uint8_t | uint8_t | uint8_t | float | 32 | 32 | 32 | 32 | 32 | 188 | 0.18 |
VXLIB_and
| dTypeIn0 | width | height | strideIn0 | strideIn1 | strideOut | EVM Cycles | Cycles/Pixel |
| uint8_t | 32 | 32 | 32 | 32 | 32 | 157 | 0.15 |
| uint8_t | 64 | 64 | 64 | 64 | 64 | 184 | 0.04 |
| uint8_t | 128 | 128 | 128 | 128 | 128 | 373 | 0.02 |
| uint8_t | 256 | 256 | 256 | 256 | 256 | 1144 | 0.02 |
VXLIB_box
| dTypeIn | dTypeOut | width | height | filterDim | strideIn | strideOut | padLeft | padRight | padTop | padBottom | EVM Cycles | Cycles/Pixel |
| uint8_t | uint8_t | 32 | 32 | 3 | 32 | 32 | 0 | 0 | 0 | 0 | 300 | 0.29 |
| uint8_t | uint8_t | 64 | 64 | 3 | 64 | 64 | 0 | 0 | 0 | 0 | 457 | 0.11 |
| uint8_t | uint8_t | 128 | 128 | 3 | 128 | 128 | 0 | 0 | 0 | 0 | 1406 | 0.09 |
| uint8_t | uint8_t | 256 | 256 | 3 | 256 | 256 | 0 | 0 | 0 | 0 | 4449 | 0.07 |
| uint8_t | uint8_t | 512 | 512 | 3 | 512 | 512 | 0 | 0 | 0 | 0 | 17787 | 0.07 |
VXLIB_convertDepth
| DatatypeIn | DatatypeOut | Height | Width | Stride | Overflow Policy | EVM Cycles | Cycles/Pixel |
| uint8_t | int16_t | 32 | 32 | 32 | N/A | 138 | 0.13 |
| uint8_t | int16_t | 64 | 64 | 64 | N/A | 258 | 0.06 |
| uint8_t | int16_t | 128 | 128 | 128 | N/A | 644 | 0.04 |
| uint8_t | int16_t | 256 | 256 | 256 | N/A | 2171 | 0.03 |
| int16_t | uint8_t | 32 | 32 | 32 | Wrap | 157 | 0.15 |
| int16_t | uint8_t | 64 | 64 | 64 | Wrap | 234 | 0.06 |
| int16_t | uint8_t | 128 | 128 | 128 | Wrap | 383 | 0.02 |
| int16_t | uint8_t | 256 | 256 | 256 | Wrap | 1152 | 0.02 |
| int16_t | uint8_t | 32 | 32 | 32 | Saturate | 168 | 0.16 |
| int16_t | uint8_t | 64 | 64 | 64 | Saturate | 355 | 0.09 |
| int16_t | uint8_t | 128 | 128 | 128 | Saturate | 888 | 0.05 |
| int16_t | uint8_t | 256 | 256 | 256 | Saturate | 3192 | 0.05 |
| int16_t | uint8_t | 32 | 32 | 64 | Saturate | 177 | 0.17 |
| int16_t | uint8_t | 64 | 64 | 128 | Saturate | 343 | 0.08 |
| int16_t | uint8_t | 128 | 128 | 192 | Saturate | 1650 | 0.10 |
| int16_t | uint8_t | 256 | 256 | 320 | Saturate | 6257 | 0.10 |
VXLIB_multiply
| dTypeIn0 | dTypeIn1 | dTypeOut | width | height | strideIn0 | strideIn1 | strideOut | overFlowPolicy | multiplyMode | EVM Cycles | Cycles/Pixel |
| uint8_t | uint8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | Saturate | 1/2^n | 626 | 0.04 |
| uint8_t | uint8_t | uint8_t | 256 | 256 | 256 | 256 | 64 | Saturate | 1/2^n | 2256 | 0.03 |
| uint8_t | uint8_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | 1/2^n | 1039 | 0.06 |
| uint8_t | uint8_t | int16_t | 256 | 256 | 256 | 256 | 32 | Saturate | 1/2^n | 3229 | 0.05 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 64 | Saturate | 1/2^n | 1801 | 0.11 |
| uint8_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 64 | Saturate | 1/2^n | 6339 | 0.1 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | 1/2^n | 1708 | 0.1 |
| int16_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 128 | Saturate | 1/2^n | 6330 | 0.1 |
| uint8_t | uint8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | Saturate | Integer | 871 | 0.05 |
| uint8_t | uint8_t | uint8_t | 256 | 256 | 256 | 256 | 64 | Saturate | Integer | 3175 | 0.05 |
| uint8_t | uint8_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | Integer | 1110 | 0.07 |
| uint8_t | uint8_t | int16_t | 256 | 256 | 256 | 256 | 32 | Saturate | Integer | 4182 | 0.06 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 64 | Saturate | Integer | 1664 | 0.1 |
| uint8_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 64 | Saturate | Integer | 6272 | 0.1 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | Integer | 1664 | 0.1 |
| int16_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 128 | Saturate | Integer | 6224 | 0.09 |
| uint8_t | uint8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | Saturate | Generic | 2911 | 0.18 |
| uint8_t | uint8_t | uint8_t | 256 | 256 | 256 | 256 | 64 | Saturate | Generic | 11395 | 0.17 |
| uint8_t | uint8_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | Generic | 2193 | 0.13 |
| uint8_t | uint8_t | int16_t | 256 | 256 | 256 | 256 | 32 | Saturate | Generic | 8336 | 0.13 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 64 | Saturate | Generic | 2701 | 0.16 |
| uint8_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 64 | Saturate | Generic | 10340 | 0.16 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | Generic | 2654 | 0.16 |
| int16_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 128 | Saturate | Generic | 10334 | 0.16 |
| uint8_t | uint8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | Wrap | 1/2^n | 354 | 0.02 |
| uint8_t | uint8_t | uint8_t | 256 | 256 | 256 | 256 | 64 | Wrap | 1/2^n | 1114 | 0.02 |
| uint8_t | uint8_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | 1/2^n | 612 | 0.04 |
| uint8_t | uint8_t | int16_t | 256 | 256 | 256 | 256 | 32 | Wrap | 1/2^n | 2140 | 0.03 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 64 | Wrap | 1/2^n | 1372 | 0.08 |
| uint8_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 64 | Wrap | 1/2^n | 5203 | 0.08 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | 1/2^n | 1372 | 0.08 |
| int16_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 128 | Wrap | 1/2^n | 5203 | 0.08 |
| uint8_t | uint8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | Wrap | Integer | 872 | 0.05 |
| uint8_t | uint8_t | uint8_t | 256 | 256 | 256 | 256 | 64 | Wrap | Integer | 3177 | 0.05 |
| uint8_t | uint8_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | Integer | 1161 | 0.07 |
| uint8_t | uint8_t | int16_t | 256 | 256 | 256 | 256 | 32 | Wrap | Integer | 4189 | 0.06 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 64 | Wrap | Integer | 1669 | 0.1 |
| uint8_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 64 | Wrap | Integer | 6234 | 0.1 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | Integer | 1627 | 0.1 |
| int16_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 128 | Wrap | Integer | 6279 | 0.1 |
| uint8_t | uint8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | Wrap | Generic | 2236 | 0.14 |
| uint8_t | uint8_t | uint8_t | 256 | 256 | 256 | 256 | 64 | Wrap | Generic | 8567 | 0.13 |
| uint8_t | uint8_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | Generic | 2143 | 0.13 |
| uint8_t | uint8_t | int16_t | 256 | 256 | 256 | 256 | 32 | Wrap | Generic | 8286 | 0.13 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 64 | Wrap | Generic | 2674 | 0.16 |
| uint8_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 64 | Wrap | Generic | 10347 | 0.16 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | Generic | 2660 | 0.16 |
| int16_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 128 | Wrap | Generic | 10337 | 0.16 |
VXLIB_xor
| dTypeIn | width | height | strideIn0 | strideIn1 | strideOut | EVM Cycles | Cycles/Pixel |
| uint8_t | 32 | 32 | 32 | 32 | 32 | 156 | 0.15 |
| uint8_t | 64 | 64 | 64 | 64 | 64 | 143 | 0.03 |
| uint8_t | 128 | 128 | 128 | 128 | 128 | 335 | 0.02 |
| uint8_t | 256 | 256 | 256 | 256 | 256 | 1149 | 0.02 |
| int8_t | 32 | 32 | 32 | 32 | 32 | 156 | 0.15 |
| int8_t | 64 | 64 | 64 | 64 | 64 | 143 | 0.03 |
| int8_t | 128 | 128 | 128 | 128 | 128 | 335 | 0.02 |
| int8_t | 256 | 256 | 256 | 256 | 256 | 1103 | 0.02 |
| uint16_t | 32 | 32 | 32 | 32 | 32 | 157 | 0.15 |
| uint16_t | 64 | 64 | 64 | 64 | 64 | 233 | 0.06 |
| uint16_t | 128 | 128 | 128 | 128 | 128 | 594 | 0.04 |
| uint16_t | 256 | 256 | 256 | 256 | 256 | 2176 | 0.03 |
| int16_t | 32 | 32 | 32 | 32 | 32 | 113 | 0.11 |
| int16_t | 64 | 64 | 64 | 64 | 64 | 207 | 0.05 |
| int16_t | 128 | 128 | 128 | 128 | 128 | 591 | 0.04 |
| int16_t | 256 | 256 | 256 | 256 | 256 | 2127 | 0.03 |
VXLIB_thresholdRange
| dTypeIn0 | dTypeOut | width | height | strideIn0 | strideOut | EVM Cycles | Cycles/Pixel |
| uint8_t | uint8_t | 32 | 32 | 32 | 32 | 112 | 0.11 |
| uint8_t | uint8_t | 64 | 64 | 64 | 64 | 144 | 0.04 |
| uint8_t | uint8_t | 128 | 128 | 128 | 128 | 337 | 0.02 |
| uint8_t | uint8_t | 256 | 256 | 256 | 256 | 1104 | 0.02 |
| int8_t | int8_t | 32 | 32 | 32 | 32 | 191 | 0.19 |
| int8_t | int8_t | 64 | 64 | 64 | 64 | 189 | 0.05 |
| int8_t | int8_t | 128 | 128 | 128 | 128 | 337 | 0.02 |
| int8_t | int8_t | 256 | 256 | 256 | 256 | 1151 | 0.02 |
| uint16_t | uint16_t | 32 | 32 | 32 | 32 | 125 | 0.12 |
| uint16_t | uint16_t | 64 | 64 | 64 | 64 | 216 | 0.05 |
| uint16_t | uint16_t | 128 | 128 | 128 | 128 | 605 | 0.04 |
| uint16_t | uint16_t | 256 | 256 | 256 | 256 | 2138 | 0.03 |
| int16_t | int16_t | 32 | 32 | 32 | 32 | 158 | 0.15 |
| int16_t | int16_t | 64 | 64 | 64 | 64 | 264 | 0.06 |
| int16_t | int16_t | 128 | 128 | 128 | 128 | 648 | 0.04 |
| int16_t | int16_t | 256 | 256 | 256 | 256 | 2184 | 0.03 |
VXLIB_subtract
| dTypeIn0 | dTypeIn1 | dTypeOut | width | height | strideIn0 | strideIn1 | strideOut | overFlowPolicy | EVM Cycles | Cycles/Pixel |
| uint8_t | uint8_t | uint8_t | 64 | 64 | 64 | 64 | 64 | Saturate | 130 | 0.03 |
| uint8_t | uint8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | Saturate | 335 | 0.02 |
| uint8_t | uint8_t | uint8_t | 256 | 256 | 256 | 256 | 256 | Saturate | 1103 | 0.02 |
| uint8_t | uint8_t | int16_t | 64 | 64 | 64 | 64 | 64 | Saturate | 193 | 0.05 |
| uint8_t | uint8_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | 591 | 0.04 |
| uint8_t | uint8_t | int16_t | 256 | 256 | 256 | 256 | 256 | Saturate | 2127 | 0.03 |
| uint8_t | int16_t | int16_t | 64 | 64 | 64 | 64 | 64 | Saturate | 235 | 0.06 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | 636 | 0.04 |
| uint8_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 256 | Saturate | 2169 | 0.03 |
| int16_t | int16_t | int16_t | 64 | 64 | 64 | 64 | 64 | Saturate | 193 | 0.05 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | 591 | 0.04 |
| int16_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 256 | Saturate | 2127 | 0.03 |
| uint8_t | uint8_t | uint8_t | 64 | 64 | 64 | 64 | 64 | Wrap | 130 | 0.03 |
| uint8_t | uint8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | Wrap | 322 | 0.02 |
| uint8_t | uint8_t | uint8_t | 256 | 256 | 256 | 256 | 256 | Wrap | 1107 | 0.02 |
| uint8_t | uint8_t | int16_t | 64 | 64 | 64 | 64 | 64 | Wrap | 194 | 0.05 |
| uint8_t | uint8_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | 595 | 0.04 |
| uint8_t | uint8_t | int16_t | 256 | 256 | 256 | 256 | 256 | Wrap | 2131 | 0.03 |
| uint8_t | int16_t | int16_t | 64 | 64 | 64 | 64 | 64 | Wrap | 236 | 0.06 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | 640 | 0.04 |
| uint8_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 256 | Wrap | 2173 | 0.03 |
| int16_t | int16_t | int16_t | 64 | 64 | 64 | 64 | 64 | Wrap | 194 | 0.05 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | 595 | 0.04 |
| int16_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 256 | Wrap | 2131 | 0.03 |
VXLIB_or
| dTypeIn | width | height | strideIn0 | strideIn1 | strideOut | EVM Cycles | Cycles/Pixel |
| uint8_t | 32 | 32 | 32 | 32 | 32 | 156 | 0.15 |
| uint8_t | 64 | 64 | 64 | 64 | 64 | 189 | 0.05 |
| uint8_t | 128 | 128 | 128 | 128 | 128 | 381 | 0.02 |
| uint8_t | 256 | 256 | 256 | 256 | 256 | 1149 | 0.02 |
| int8_t | 32 | 32 | 32 | 32 | 32 | 111 | 0.11 |
| int8_t | 64 | 64 | 64 | 64 | 64 | 143 | 0.03 |
| int8_t | 128 | 128 | 128 | 128 | 128 | 335 | 0.02 |
| int8_t | 256 | 256 | 256 | 256 | 256 | 1103 | 0.02 |
| uint16_t | 32 | 32 | 32 | 32 | 32 | 111 | 0.11 |
| uint16_t | 64 | 64 | 64 | 64 | 64 | 231 | 0.06 |
| uint16_t | 128 | 128 | 128 | 128 | 128 | 594 | 0.04 |
| uint16_t | 256 | 256 | 256 | 256 | 256 | 2130 | 0.03 |
| int16_t | 32 | 32 | 32 | 32 | 32 | 113 | 0.11 |
| int16_t | 64 | 64 | 64 | 64 | 64 | 207 | 0.05 |
| int16_t | 128 | 128 | 128 | 128 | 128 | 591 | 0.04 |
| int16_t | 256 | 256 | 256 | 256 | 256 | 2127 | 0.03 |
VXLIB_not
| dTypeIn | width | height | strideIn0 | strideIn1 | strideOut | EVM Cycles | Cycles/Pixel |
| uint8_t | 32 | 32 | 32 | 32 | 32 | 109 | 0.11 |
| uint8_t | 64 | 64 | 64 | 64 | 64 | 141 | 0.03 |
| uint8_t | 128 | 128 | 128 | 128 | 128 | 333 | 0.02 |
| uint8_t | 256 | 256 | 256 | 256 | 256 | 1101 | 0.02 |
| int8_t | 32 | 32 | 32 | 32 | 32 | 111 | 0.11 |
| int8_t | 64 | 64 | 64 | 64 | 64 | 141 | 0.03 |
| int8_t | 128 | 128 | 128 | 128 | 128 | 333 | 0.02 |
| int8_t | 256 | 256 | 256 | 256 | 256 | 1101 | 0.02 |
| uint16_t | 32 | 32 | 32 | 32 | 32 | 121 | 0.12 |
| uint16_t | 64 | 64 | 64 | 64 | 64 | 215 | 0.05 |
| uint16_t | 128 | 128 | 128 | 128 | 128 | 601 | 0.04 |
| uint16_t | 256 | 256 | 256 | 256 | 256 | 2134 | 0.03 |
| int16_t | 32 | 32 | 32 | 32 | 32 | 109 | 0.11 |
| int16_t | 64 | 64 | 64 | 64 | 64 | 205 | 0.05 |
| int16_t | 128 | 128 | 128 | 128 | 128 | 589 | 0.04 |
| int16_t | 256 | 256 | 256 | 256 | 256 | 2128 | 0.03 |
VXLIB_normL1
| dTypeIn | dypeOut | width | height | strideIn0 | strideIn1 | strideOut | EVM Cycles | Cycles/Pixel |
| int8_t | uint8_t | 32 | 32 | 32 | 32 | 32 | 99 | 0.1 |
| int8_t | uint8_t | 64 | 64 | 64 | 64 | 64 | 145 | 0.04 |
| int8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | 337 | 0.02 |
| int8_t | uint8_t | 256 | 256 | 256 | 256 | 256 | 1105 | 0.02 |
| int16_t | uint16_t | 32 | 32 | 32 | 32 | 32 | 113 | 0.11 |
| int16_t | uint16_t | 64 | 64 | 64 | 64 | 64 | 209 | 0.05 |
| int16_t | uint16_t | 128 | 128 | 128 | 128 | 128 | 593 | 0.04 |
| int16_t | uint16_t | 256 | 256 | 256 | 256 | 256 | 2131 | 0.03 |
VXLIB_normL2
| dTypeIn | dypeOut | width | height | strideIn0 | strideIn1 | strideOut | EVM Cycles | Cycles/Pixel |
| int8_t | uint8_t | 32 | 32 | 32 | 32 | 32 | 488 | 0.48 |
| int8_t | uint8_t | 64 | 64 | 64 | 64 | 64 | 1448 | 0.35 |
| int8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | 5288 | 0.32 |
| int8_t | uint8_t | 256 | 256 | 256 | 256 | 256 | 20654 | 0.32 |
| int16_t | uint16_t | 32 | 32 | 32 | 32 | 32 | 494 | 0.48 |
| int16_t | uint16_t | 64 | 64 | 64 | 64 | 64 | 1550 | 0.38 |
| int16_t | uint16_t | 128 | 128 | 128 | 128 | 128 | 5774 | 0.35 |
| int16_t | uint16_t | 256 | 256 | 256 | 256 | 256 | 22670 | 0.35 |
VXLIB_minMaxLoc
| dType | width | height | Mode | EVM Cycles | Cycles/NumPt |
| uint8_t | 128 | 128 | Min/Max Value | 334 | 0.02 |
| uint8_t | 256 | 256 | Min/Max Value | 661 | 0.01 |
| int8_t | 128 | 128 | Min/Max Value | 335 | 0.02 |
| int8_t | 256 | 256 | Min/Max Value | 660 | 0.01 |
| uint16_t | 128 | 128 | Min/Max Value | 430 | 0.03 |
| uint16_t | 256 | 256 | Min/Max Value | 1157 | 0.02 |
| int16_t | 128 | 128 | Min/Max Value | 430 | 0.03 |
| int16_t | 256 | 256 | Min/Max Value | 1158 | 0.02 |
| uint8_t | 128 | 128 | Min/Max Value-Count | 924 | 0.06 |
| uint8_t | 256 | 256 | Min/Max Value-Count | 2823 | 0.04 |
| int8_t | 128 | 128 | Min/Max Value-Count | 923 | 0.06 |
| int8_t | 256 | 256 | Min/Max Value-Count | 2821 | 0.04 |
| uint16_t | 128 | 128 | Min/Max Value-Count | 1582 | 0.1 |
| uint16_t | 256 | 256 | Min/Max Value-Count | 5364 | 0.08 |
| int16_t | 128 | 128 | Min/Max Value-Count | 1582 | 0.1 |
| int16_t | 256 | 256 | Min/Max Value-Count | 5370 | 0.08 |
| uint8_t | 128 | 128 | Min/Max Value-Count-Loc | 18397 | 1.12 |
| uint8_t | 256 | 256 | Min/Max Value-Count-Loc | 58177 | 0.89 |
| int8_t | 128 | 128 | Min/Max Value-Count-Loc | 18400 | 1.12 |
| int8_t | 256 | 256 | Min/Max Value-Count-Loc | 58211 | 0.89 |
| uint16_t | 128 | 128 | Min/Max Value-Count-Loc | 19019 | 1.16 |
| uint16_t | 256 | 256 | Min/Max Value-Count-Loc | 60718 | 0.93 |
| int16_t | 128 | 128 | Min/Max Value-Count-Loc | 19099 | 1.17 |
| int16_t | 256 | 256 | Min/Max Value-Count-Loc | 60754 | 0.93 |
VXLIB_median
| dTypeIn | widthIn | heightIn | M | N | widthOut | heightOut | kernelType | EVM Cycles | Cycles/NumPt |
| uint8_t | 128 | 128 | 3 | 3 | 126 | 126 | 0 | 2093 | 0.13 |
| uint8_t | 256 | 256 | 3 | 3 | 254 | 254 | 0 | 8205 | 0.13 |
| int8_t | 128 | 128 | 3 | 3 | 126 | 126 | 0 | 2093 | 0.13 |
| int8_t | 256 | 256 | 3 | 3 | 254 | 254 | 0 | 8205 | 0.13 |
| uint16_t | 128 | 128 | 3 | 3 | 126 | 126 | 0 | 4116 | 0.25 |
| uint16_t | 256 | 256 | 3 | 3 | 254 | 254 | 0 | 16341 | 0.25 |
| int16_t | 128 | 128 | 3 | 3 | 126 | 126 | 0 | 4109 | 0.25 |
| int16_t | 256 | 256 | 3 | 3 | 254 | 254 | 0 | 16334 | 0.25 |
| uint8_t | 128 | 128 | 4 | 4 | 125 | 125 | 1 | 100548 | 0.4 |
| uint8_t | 256 | 256 | 4 | 4 | 253 | 253 | 1 | 271350 | 0.26 |
| int8_t | 128 | 128 | 5 | 5 | 124 | 124 | 1 | 172939 | 0.45 |
| int8_t | 256 | 256 | 5 | 5 | 252 | 252 | 1 | 500810 | 0.32 |
| uint8_t | 128 | 128 | 6 | 6 | 123 | 123 | 1 | 269645 | 0.5 |
| uint8_t | 256 | 256 | 6 | 6 | 251 | 251 | 1 | 829512 | 0.37 |
| int8_t | 128 | 128 | 7 | 7 | 122 | 122 | 1 | 422710 | 0.58 |
| int8_t | 256 | 256 | 7 | 7 | 250 | 250 | 1 | 1370245 | 0.45 |
| uint16_t | 128 | 128 | 4 | 4 | 125 | 125 | 1 | 142520 | 0.57 |
| uint16_t | 256 | 256 | 4 | 4 | 253 | 253 | 1 | 437628 | 0.43 |
| int16_t | 128 | 128 | 5 | 5 | 124 | 124 | 1 | 255016 | 0.66 |
| int16_t | 256 | 256 | 5 | 5 | 252 | 252 | 1 | 835436 | 0.53 |
| uint16_t | 128 | 128 | 6 | 6 | 123 | 123 | 1 | 416180 | 0.76 |
| uint16_t | 256 | 256 | 6 | 6 | 251 | 251 | 1 | 1446015 | 0.64 |
| int16_t | 128 | 128 | 7 | 7 | 122 | 122 | 1 | 679028 | 0.93 |
| int16_t | 256 | 256 | 7 | 7 | 250 | 250 | 1 | 2446645 | 0.8 |
VXLIB_convolve
| dTypeIn | dTypeFilter | dTypeOut | width | height | strideIn | strideOut | filterWidth | filterHeight | scale | padLeft | padRight | padTop | padBottom | EVM Cycles | Cycles/Pixel |
| uint8_t | int16_t | uint8_t | 32 | 32 | 32 | 32 | 3 | 3 | 4 | 0 | 0 | 0 | 0 | 229 | 0.22 |
| uint8_t | int16_t | uint8_t | 64 | 64 | 64 | 64 | 3 | 3 | 4 | 0 | 0 | 0 | 0 | 552 | 0.13 |
| uint8_t | int16_t | uint8_t | 128 | 128 | 128 | 128 | 3 | 3 | 4 | 0 | 0 | 0 | 0 | 1725 | 0.11 |
| uint8_t | int16_t | int16_t | 32 | 32 | 32 | 64 | 3 | 3 | 4 | 0 | 0 | 0 | 0 | 227 | 0.22 |
| uint8_t | int16_t | int16_t | 64 | 64 | 64 | 128 | 3 | 3 | 4 | 0 | 0 | 0 | 0 | 576 | 0.14 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 3 | 3 | 4 | 0 | 0 | 0 | 0 | 1725 | 0.11 |
| uint8_t | int16_t | uint8_t | 32 | 32 | 32 | 32 | 5 | 5 | 4 | 0 | 0 | 0 | 0 | 453 | 0.44 |
| uint8_t | int16_t | uint8_t | 64 | 64 | 64 | 64 | 5 | 5 | 4 | 0 | 0 | 0 | 0 | 1376 | 0.34 |
| uint8_t | int16_t | uint8_t | 128 | 128 | 128 | 128 | 5 | 5 | 4 | 0 | 0 | 0 | 0 | 5193 | 0.32 |
| uint8_t | int16_t | int16_t | 32 | 32 | 32 | 32 | 5 | 5 | 4 | 0 | 0 | 0 | 0 | 452 | 0.44 |
| uint8_t | int16_t | int16_t | 64 | 64 | 64 | 64 | 5 | 5 | 4 | 0 | 0 | 0 | 0 | 1481 | 0.36 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 5 | 5 | 4 | 0 | 0 | 0 | 0 | 5226 | 0.32 |
| uint8_t | int16_t | uint8_t | 32 | 32 | 32 | 32 | 7 | 7 | 5 | 0 | 0 | 0 | 0 | 516 | 0.5 |
| uint8_t | int16_t | uint8_t | 64 | 64 | 64 | 64 | 7 | 7 | 5 | 0 | 0 | 0 | 0 | 1814 | 0.44 |
| uint8_t | int16_t | uint8_t | 128 | 128 | 128 | 128 | 7 | 7 | 5 | 0 | 0 | 0 | 0 | 7105 | 0.43 |
| uint8_t | int16_t | int16_t | 32 | 32 | 32 | 32 | 7 | 7 | 5 | 0 | 0 | 0 | 0 | 516 | 0.5 |
| uint8_t | int16_t | int16_t | 64 | 64 | 64 | 64 | 7 | 7 | 5 | 0 | 0 | 0 | 0 | 1837 | 0.45 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 7 | 7 | 5 | 0 | 0 | 0 | 0 | 7110 | 0.43 |
| uint8_t | int16_t | uint8_t | 32 | 32 | 32 | 32 | 9 | 9 | 5 | 0 | 0 | 0 | 0 | 1100 | 1.07 |
| uint8_t | int16_t | uint8_t | 64 | 64 | 64 | 64 | 9 | 9 | 5 | 0 | 0 | 0 | 0 | 4342 | 1.06 |
| uint8_t | int16_t | uint8_t | 128 | 128 | 128 | 128 | 9 | 9 | 5 | 0 | 0 | 0 | 0 | 17722 | 1.08 |
| uint8_t | int16_t | int16_t | 32 | 32 | 32 | 32 | 9 | 9 | 5 | 0 | 0 | 0 | 0 | 1100 | 1.07 |
| uint8_t | int16_t | int16_t | 64 | 64 | 64 | 64 | 9 | 9 | 5 | 0 | 0 | 0 | 0 | 4342 | 1.06 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 9 | 9 | 5 | 0 | 0 | 0 | 0 | 17723 | 1.08 |
| uint8_t | int16_t | uint8_t | 32 | 32 | 32 | 32 | 8 | 13 | 6 | 0 | 0 | 0 | 0 | 2518 | 2.46 |
| uint8_t | int16_t | uint8_t | 64 | 64 | 64 | 64 | 27 | 33 | 9 | 0 | 0 | 0 | 0 | 58702 | 14.33 |
| uint8_t | int16_t | uint8_t | 128 | 128 | 128 | 128 | 89 | 67 | 12 | 0 | 0 | 0 | 0 | 1484925 | 90.63 |
| uint8_t | int16_t | int16_t | 32 | 32 | 32 | 32 | 8 | 13 | 6 | 0 | 0 | 0 | 0 | 2507 | 2.45 |
| uint8_t | int16_t | int16_t | 64 | 64 | 64 | 64 | 27 | 33 | 9 | 0 | 0 | 0 | 0 | 58561 | 14.3 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 89 | 67 | 12 | 0 | 0 | 0 | 0 | 1484458 | 90.6 |
VXLIB_dilate
| dTypeIn | dTypeOut | width | height | strideIn | strideOut | filterWidth | filterHeight | EVM Cycles | Cycles/Pixel |
| uint8_t | uint8_t | 32 | 32 | 32 | 32 | 29 | 12 | 4088 | 3.99 |
| uint8_t | uint8_t | 64 | 64 | 64 | 64 | 23 | 54 | 7618 | 1.86 |
| uint8_t | uint8_t | 128 | 128 | 128 | 128 | 13 | 92 | 46154 | 2.82 |
| uint16_t | uint16_t | 32 | 32 | 32 | 32 | 29 | 12 | 4140 | 4.04 |
| uint16_t | uint16_t | 64 | 64 | 64 | 64 | 23 | 54 | 15196 | 3.71 |
| uint16_t | uint16_t | 128 | 128 | 128 | 128 | 13 | 92 | 92230 | 5.63 |
VXLIB_meanStdDev
| dTypeIn | dTypeOut | width | height | strideIn | Loki cycles | EVM Cycles | EVM vs. Loki | Cycles/Pixel |
| uint8_t | float | 32 | 32 | 32 | 363 | 396 | 1.09 | 0.39 |
| uint8_t | float | 64 | 64 | 64 | 555 | 583 | 1.05 | 0.14 |
| uint8_t | float | 128 | 128 | 128 | 1323 | 1357 | 1.03 | 0.08 |
| uint16_t | float | 32 | 32 | 32 | 469 | 491 | 1.05 | 0.48 |
| uint16_t | float | 64 | 64 | 64 | 853 | 895 | 1.05 | 0.22 |
| uint16_t | float | 128 | 128 | 128 | 2389 | 2411 | 1.01 | 0.15 |
VXLIB_gaussian
| dTypeIn | dTypeOut | width | height | filterDim | strideIn | strideOut | shift | padLeft | padRight | padTop | padBottom | EVM Cycles | Cycles/Pixel |
| uint8_t | uint8_t | 64 | 64 | 3 | 64 | 64 | 0 | 0 | 0 | 0 | 0 | 518 | 0.13 |
| uint8_t | uint8_t | 128 | 128 | 3 | 128 | 128 | 0 | 0 | 0 | 0 | 0 | 1501 | 0.09 |
| uint8_t | uint8_t | 256 | 256 | 3 | 256 | 256 | 0 | 0 | 0 | 0 | 0 | 5162 | 0.08 |
| uint8_t | uint8_t | 64 | 64 | 5 | 64 | 64 | 8 | 0 | 0 | 0 | 0 | 1357 | 0.33 |
| uint8_t | uint8_t | 128 | 128 | 5 | 128 | 128 | 8 | 0 | 0 | 0 | 0 | 5240 | 0.32 |
| uint8_t | uint8_t | 256 | 256 | 5 | 256 | 256 | 8 | 0 | 0 | 0 | 0 | 20563 | 0.31 |
VXLIB_halfScaleGaussian
| dTypeIn | dTypeOut | widthIn | heightIn | widthOut | heightOut | filterDim | strideIn | strideOut | padLeft | padRight | padTop | padBottom | EVM Cycles | Cycles/Pixel |
| uint8_t | uint8_t | 64 | 64 | 30 | 30 | 5 | 64 | 30 | 0 | 0 | 0 | 0 | 811 | 0.20 |
| uint8_t | uint8_t | 128 | 128 | 62 | 62 | 5 | 128 | 62 | 0 | 0 | 0 | 0 | 2733 | 0.17 |
| uint8_t | uint8_t | 256 | 256 | 126 | 126 | 5 | 256 | 126 | 0 | 0 | 0 | 0 | 10582 | 0.16 |
VXLIB_magnitude
| dTypeIn0 | dTypeIn1 | dTypeOut | width | height | strideIn0 | strideIn1 | strideOut | EVM Cycles | Cycles/Pixel |
| int16_t | int16_t | int16_t | 32 | 32 | 32 | 32 | 32 | 359 | 0.35 |
| int16_t | int16_t | int16_t | 64 | 64 | 64 | 64 | 64 | 1016 | 0.25 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | 3704 | 0.23 |
| int16_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 256 | 14491 | 0.22 |
VXLIB_histogram
| dTypeIn | dTypeOut | width | height | strideIn | offset | range | numBins | EVM Cycles | Cycles/Pixel |
| uint8_t | uint32_t | 64 | 64 | 64 | 0 | 256 | 100 | 67306 | 16.43 |
| uint8_t | uint32_t | 128 | 128 | 128 | 0 | 256 | 100 | 266645 | 16.27 |
| uint8_t | uint32_t | 256 | 256 | 256 | 0 | 256 | 100 | 1064768 | 16.25 |
| uint8_t | uint32_t | 512 | 512 | 512 | 0 | 256 | 100 | 4257654 | 16.24 |
VXLIB_tableLookup
| dTypeIn | width | height | strideIn0 | strideIn1 | strideOut | count | offset | EVM Cycles | Cycles/Pixel |
| uint8_t | 32 | 32 | 32 | 32 | 32 | 32 | 0 | 528 | 0.52 |
| uint8_t | 64 | 64 | 64 | 64 | 64 | 64 | 0 | 864 | 0.21 |
| uint8_t | 128 | 128 | 128 | 128 | 128 | 128 | 0 | 1532 | 0.09 |
| uint8_t | 256 | 256 | 256 | 256 | 256 | 256 | 0 | 5564 | 0.08 |
| uint8_t | 256 | 256 | 256 | 256 | 256 | 256 | 10 | 5588 | 0.09 |
| int8_t | 32 | 32 | 32 | 32 | 32 | 32 | 0 | 562 | 0.55 |
| int8_t | 64 | 64 | 64 | 64 | 64 | 64 | 0 | 919 | 0.22 |
| int8_t | 128 | 128 | 128 | 128 | 128 | 127 | 0 | 1578 | 0.1 |
| int8_t | 256 | 256 | 256 | 256 | 256 | 127 | 0 | 5842 | 0.09 |
| int8_t | 256 | 256 | 256 | 256 | 256 | 127 | 10 | 5802 | 0.09 |
| uint16_t | 32 | 32 | 32 | 32 | 32 | 32 | 0 | 573 | 0.56 |
| uint16_t | 64 | 64 | 64 | 64 | 64 | 64 | 0 | 976 | 0.24 |
| uint16_t | 128 | 128 | 128 | 128 | 128 | 128 | 12 | 1837 | 0.11 |
| uint16_t | 128 | 128 | 128 | 128 | 128 | 128 | 0 | 1837 | 0.11 |
| uint16_t | 256 | 256 | 256 | 256 | 256 | 512 | 30 | 6830 | 0.1 |
| int16_t | 32 | 32 | 32 | 32 | 32 | 32 | 0 | 608 | 0.59 |
| int16_t | 64 | 64 | 64 | 64 | 64 | 64 | 0 | 1014 | 0.25 |
| int16_t | 128 | 128 | 128 | 128 | 128 | 128 | 12 | 1975 | 0.12 |
| int16_t | 128 | 128 | 128 | 128 | 128 | 128 | 0 | 1975 | 0.12 |
| int16_t | 256 | 256 | 256 | 256 | 256 | 512 | 30 | 7343 | 0.11 |
VXLIB_thresholdBinary
| dTypeIn0 | dTypeOut | width | height | strideIn0 | strideOut | EVM Cycles | Cycles/Pixel |
| uint8_t | uint8_t | 32 | 32 | 32 | 32 | 113 | 0.11 |
| uint8_t | uint8_t | 64 | 64 | 64 | 64 | 143 | 0.03 |
| uint8_t | uint8_t | 128 | 128 | 128 | 128 | 335 | 0.02 |
| uint8_t | uint8_t | 256 | 256 | 256 | 256 | 1103 | 0.02 |
| int8_t | int8_t | 32 | 32 | 32 | 32 | 111 | 0.11 |
| int8_t | int8_t | 64 | 64 | 64 | 64 | 143 | 0.03 |
| int8_t | int8_t | 128 | 128 | 128 | 128 | 335 | 0.02 |
| int8_t | int8_t | 256 | 256 | 256 | 256 | 1133 | 0.02 |
| uint16_t | uint16_t | 32 | 32 | 32 | 32 | 111 | 0.11 |
| uint16_t | uint16_t | 64 | 64 | 64 | 64 | 207 | 0.05 |
| uint16_t | uint16_t | 128 | 128 | 128 | 128 | 591 | 0.04 |
| uint16_t | uint16_t | 256 | 256 | 256 | 256 | 2127 | 0.03 |
| int16_t | int16_t | 32 | 32 | 32 | 32 | 151 | 0.15 |
| int16_t | int16_t | 64 | 64 | 64 | 64 | 248 | 0.06 |
| int16_t | int16_t | 128 | 128 | 128 | 128 | 591 | 0.04 |
| int16_t | int16_t | 256 | 256 | 256 | 256 | 2127 | 0.03 |