Performance data was obtained on the J721S2 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 | 79 | 0.08 |
| uint8_t | uint8_t | uint8_t | 64 | 64 | 64 | 64 | 64 | 111 | 0.03 |
| uint8_t | uint8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | 303 | 0.02 |
| uint8_t | uint8_t | uint8_t | 256 | 256 | 256 | 256 | 256 | 1071 | 0.02 |
| int16_t | int16_t | int16_t | 32 | 32 | 32 | 32 | 32 | 80 | 0.08 |
| int16_t | int16_t | int16_t | 64 | 64 | 64 | 64 | 64 | 176 | 0.04 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | 560 | 0.03 |
| int16_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 256 | 2096 | 0.03 |
VXLIB_accumulateImage
| Input | Output | width | height | strideIn0 | strideOut | EVM Cycles | Cycles/pixel |
| uint8_t | uint8_t | 128 | 128 | 128 | 128 | 412 | 0.03 |
| uint8_t | int16_t | 128 | 128 | 128 | 128 | 749 | 0.05 |
| int16_t | int16_t | 32 | 32 | 32 | 32 | 125 | 0.12 |
| uint8_t | uint8_t | 64 | 64 | 64 | 64 | 149 | 0.04 |
| uint8_t | int16_t | 128 | 128 | 128 | 128 | 736 | 0.04 |
| int16_t | int16_t | 128 | 128 | 128 | 128 | 675 | 0.04 |
| uint8_t | uint8_t | 128 | 128 | 128 | 128 | 428 | 0.03 |
| uint8_t | int16_t | 128 | 128 | 128 | 128 | 769 | 0.05 |
| int16_t | int16_t | 32 | 32 | 32 | 32 | 157 | 0.15 |
| uint8_t | int16_t | 128 | 128 | 128 | 128 | 778 | 0.05 |
| int16_t | int16_t | 128 | 128 | 128 | 128 | 682 | 0.04 |
VXLIB_accumulateSquareImage
| dTypeIn | dTypeOut | width | height | strideIn0 | strideOut | EVM Cycles | Cycles/Pixel |
| uint8_t | int16_t | 128 | 128 | 128 | 128 | 1213 | 0.07 |
| uint8_t | int16_t | 128 | 128 | 128 | 128 | 1190 | 0.07 |
| uint8_t | int16_t | 128 | 128 | 128 | 128 | 1191 | 0.07 |
| uint8_t | int16_t | 128 | 128 | 128 | 128 | 1188 | 0.07 |
| uint8_t | int16_t | 256 | 256 | 256 | 256 | 4263 | 0.07 |
VXLIB_accumulateWeightImage
| dTypeIn | dTypeOut | dTypeAlpha | width | height | strideIn | strideOut | EVM Cycles | Cycles/Pixel |
| uint8_t | uint8_t | float | 256 | 256 | 256 | 256 | 6349 | 0.10 |
| uint8_t | uint8_t | float | 128 | 128 | 128 | 128 | 1667 | 0.10 |
| uint8_t | uint8_t | float | 64 | 64 | 64 | 64 | 481 | 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 | 381 | 0.02 |
| uint8_t | uint8_t | int16_t | 64 | 64 | 64 | 64 | 64 | Saturate | 242 | 0.06 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | 643 | 0.04 |
| int16_t | int16_t | int16_t | 32 | 32 | 32 | 32 | 32 | Saturate | 162 | 0.16 |
| uint8_t | uint8_t | uint8_t | 64 | 64 | 64 | 64 | 64 | Saturate | 154 | 0.04 |
| uint8_t | uint8_t | int16_t | 64 | 64 | 64 | 64 | 64 | Saturate | 261 | 0.06 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | 646 | 0.04 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | 605 | 0.04 |
| uint8_t | uint8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | Wrap | 384 | 0.02 |
| uint8_t | uint8_t | int16_t | 64 | 64 | 64 | 64 | 64 | Wrap | 264 | 0.06 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | 688 | 0.04 |
| int16_t | int16_t | int16_t | 32 | 32 | 32 | 32 | 32 | Wrap | 139 | 0.14 |
| uint8_t | uint8_t | uint8_t | 64 | 64 | 64 | 64 | 64 | Wrap | 187 | 0.05 |
| uint8_t | uint8_t | int16_t | 64 | 64 | 64 | 64 | 64 | Wrap | 218 | 0.05 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | 681 | 0.04 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | 601 | 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 | 1139 | 0.07 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | 13 | 1116 | 0.07 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | 14 | 1165 | 0.07 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | 10 | 1161 | 0.07 |
| uint8_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 256 | 12 | 4189 | 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 | 6262 | 0.10 |
| uint8_t | uint8_t | uint8_t | float | 128 | 128 | 128 | 128 | 128 | 1677 | 0.10 |
| uint8_t | uint8_t | uint8_t | float | 64 | 64 | 64 | 64 | 64 | 526 | 0.13 |
| uint8_t | uint8_t | uint8_t | float | 32 | 32 | 32 | 32 | 32 | 247 | 0.24 |
VXLIB_and
| dTypeIn0 | width | height | strideIn0 | strideIn1 | strideOut | EVM Cycles | Cycles/Pixel |
| uint8_t | 32 | 32 | 32 | 32 | 32 | 122 | 0.12 |
| uint8_t | 64 | 64 | 64 | 64 | 64 | 154 | 0.04 |
| uint8_t | 128 | 128 | 128 | 128 | 128 | 347 | 0.02 |
| uint8_t | 256 | 256 | 256 | 256 | 256 | 1115 | 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 | 311 | 0.30 |
| uint8_t | uint8_t | 64 | 64 | 3 | 64 | 64 | 0 | 0 | 0 | 0 | 520 | 0.13 |
| uint8_t | uint8_t | 128 | 128 | 3 | 128 | 128 | 0 | 0 | 0 | 0 | 1270 | 0.08 |
| uint8_t | uint8_t | 256 | 256 | 3 | 256 | 256 | 0 | 0 | 0 | 0 | 4433 | 0.07 |
| uint8_t | uint8_t | 512 | 512 | 3 | 512 | 512 | 0 | 0 | 0 | 0 | 17710 | 0.07 |
VXLIB_convertDepth
| DatatypeIn | DatatypeOut | Height | Width | Stride | Overflow Policy | EVM Cycles | Cycles/Pixel |
| uint8_t | int16_t | 32 | 32 | 32 | N/A | 210 | 0.21 |
| uint8_t | int16_t | 64 | 64 | 64 | N/A | 381 | 0.09 |
| uint8_t | int16_t | 128 | 128 | 128 | N/A | 1140 | 0.07 |
| uint8_t | int16_t | 256 | 256 | 256 | N/A | 4212 | 0.06 |
| int16_t | uint8_t | 32 | 32 | 32 | Wrap | 221 | 0.22 |
| int16_t | uint8_t | 64 | 64 | 64 | Wrap | 246 | 0.06 |
| int16_t | uint8_t | 128 | 128 | 128 | Wrap | 649 | 0.04 |
| int16_t | uint8_t | 256 | 256 | 256 | Wrap | 2185 | 0.03 |
| int16_t | uint8_t | 32 | 32 | 32 | Saturate | 279 | 0.27 |
| int16_t | uint8_t | 64 | 64 | 64 | Saturate | 493 | 0.12 |
| int16_t | uint8_t | 128 | 128 | 128 | Saturate | 1664 | 0.10 |
| int16_t | uint8_t | 256 | 256 | 256 | Saturate | 6272 | 0.10 |
| int16_t | uint8_t | 32 | 32 | 64 | Saturate | 255 | 0.25 |
| int16_t | uint8_t | 64 | 64 | 128 | Saturate | 889 | 0.22 |
| int16_t | uint8_t | 128 | 128 | 192 | Saturate | 3194 | 0.19 |
| int16_t | uint8_t | 256 | 256 | 320 | Saturate | 12410 | 0.19 |
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 | 478 | 0.03 |
| uint8_t | uint8_t | uint8_t | 256 | 256 | 256 | 256 | 64 | Saturate | 1/2^n | 1630 | 0.02 |
| uint8_t | uint8_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | 1/2^n | 864 | 0.05 |
| uint8_t | uint8_t | int16_t | 256 | 256 | 256 | 256 | 32 | Saturate | 1/2^n | 3169 | 0.05 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 64 | Saturate | 1/2^n | 1633 | 0.1 |
| uint8_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 64 | Saturate | 1/2^n | 6238 | 0.1 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | 1/2^n | 1633 | 0.1 |
| int16_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 128 | Saturate | 1/2^n | 6238 | 0.1 |
| uint8_t | uint8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | Saturate | Integer | 869 | 0.05 |
| uint8_t | uint8_t | uint8_t | 256 | 256 | 256 | 256 | 64 | Saturate | Integer | 3170 | 0.05 |
| uint8_t | uint8_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | Integer | 1169 | 0.07 |
| uint8_t | uint8_t | int16_t | 256 | 256 | 256 | 256 | 32 | Saturate | Integer | 4197 | 0.06 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 64 | Saturate | Integer | 1619 | 0.1 |
| uint8_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 64 | Saturate | Integer | 6235 | 0.1 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | Integer | 1620 | 0.1 |
| int16_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 128 | Saturate | Integer | 6235 | 0.1 |
| uint8_t | uint8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | Saturate | Generic | 2918 | 0.18 |
| uint8_t | uint8_t | uint8_t | 256 | 256 | 256 | 256 | 64 | Saturate | Generic | 11357 | 0.17 |
| uint8_t | uint8_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | Generic | 2196 | 0.13 |
| uint8_t | uint8_t | int16_t | 256 | 256 | 256 | 256 | 32 | Saturate | Generic | 8297 | 0.13 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 64 | Saturate | Generic | 2656 | 0.16 |
| uint8_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 64 | Saturate | Generic | 10343 | 0.16 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | Generic | 2663 | 0.16 |
| int16_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 128 | Saturate | Generic | 10343 | 0.16 |
| uint8_t | uint8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | Wrap | 1/2^n | 362 | 0.02 |
| uint8_t | uint8_t | uint8_t | 256 | 256 | 256 | 256 | 64 | Wrap | 1/2^n | 1121 | 0.02 |
| uint8_t | uint8_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | 1/2^n | 620 | 0.04 |
| uint8_t | uint8_t | int16_t | 256 | 256 | 256 | 256 | 32 | Wrap | 1/2^n | 2145 | 0.03 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 64 | Wrap | 1/2^n | 1381 | 0.08 |
| uint8_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 64 | Wrap | 1/2^n | 5253 | 0.08 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | 1/2^n | 1381 | 0.08 |
| int16_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 128 | Wrap | 1/2^n | 5212 | 0.08 |
| uint8_t | uint8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | Wrap | Integer | 862 | 0.05 |
| uint8_t | uint8_t | uint8_t | 256 | 256 | 256 | 256 | 64 | Wrap | Integer | 3166 | 0.05 |
| uint8_t | uint8_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | Integer | 1125 | 0.07 |
| uint8_t | uint8_t | int16_t | 256 | 256 | 256 | 256 | 32 | Wrap | Integer | 4197 | 0.06 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 64 | Wrap | Integer | 1629 | 0.1 |
| uint8_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 64 | Wrap | Integer | 6237 | 0.1 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | Integer | 1654 | 0.1 |
| int16_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 128 | Wrap | Integer | 6238 | 0.1 |
| uint8_t | uint8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | Wrap | Generic | 2229 | 0.14 |
| uint8_t | uint8_t | uint8_t | 256 | 256 | 256 | 256 | 64 | Wrap | Generic | 8560 | 0.13 |
| uint8_t | uint8_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | Generic | 2197 | 0.13 |
| uint8_t | uint8_t | int16_t | 256 | 256 | 256 | 256 | 32 | Wrap | Generic | 8296 | 0.13 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 64 | Wrap | Generic | 2662 | 0.16 |
| uint8_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 64 | Wrap | Generic | 10335 | 0.16 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | Generic | 2662 | 0.16 |
| int16_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 128 | Wrap | Generic | 10335 | 0.16 |
VXLIB_minMaxLoc
| dType | width | height | Mode | EVM Cycles | Cycles/NumPt |
| uint8_t | 128 | 128 | Min/Max Value | 319 | 0.02 |
| uint8_t | 256 | 256 | Min/Max Value | 670 | 0.01 |
| int8_t | 128 | 128 | Min/Max Value | 334 | 0.02 |
| int8_t | 256 | 256 | Min/Max Value | 661 | 0.01 |
| uint16_t | 128 | 128 | Min/Max Value | 421 | 0.03 |
| uint16_t | 256 | 256 | Min/Max Value | 1164 | 0.02 |
| int16_t | 128 | 128 | Min/Max Value | 430 | 0.03 |
| int16_t | 256 | 256 | Min/Max Value | 1157 | 0.02 |
| uint8_t | 128 | 128 | Min/Max Value-Count | 931 | 0.06 |
| uint8_t | 256 | 256 | Min/Max Value-Count | 2822 | 0.04 |
| int8_t | 128 | 128 | Min/Max Value-Count | 924 | 0.06 |
| int8_t | 256 | 256 | Min/Max Value-Count | 2823 | 0.04 |
| uint16_t | 128 | 128 | Min/Max Value-Count | 1554 | 0.09 |
| uint16_t | 256 | 256 | Min/Max Value-Count | 5394 | 0.08 |
| int16_t | 128 | 128 | Min/Max Value-Count | 1582 | 0.1 |
| int16_t | 256 | 256 | Min/Max Value-Count | 5364 | 0.08 |
| uint8_t | 128 | 128 | Min/Max Value-Count-Loc | 18409 | 1.12 |
| uint8_t | 256 | 256 | Min/Max Value-Count-Loc | 58194 | 0.89 |
| int8_t | 128 | 128 | Min/Max Value-Count-Loc | 18397 | 1.12 |
| int8_t | 256 | 256 | Min/Max Value-Count-Loc | 58177 | 0.89 |
| uint16_t | 128 | 128 | Min/Max Value-Count-Loc | 19011 | 1.16 |
| uint16_t | 256 | 256 | Min/Max Value-Count-Loc | 60725 | 0.93 |
| int16_t | 128 | 128 | Min/Max Value-Count-Loc | 19019 | 1.16 |
| int16_t | 256 | 256 | Min/Max Value-Count-Loc | 60718 | 0.93 |
VXLIB_xor
| dTypeIn | width | height | strideIn0 | strideIn1 | strideOut | EVM Cycles | Cycles/Pixel |
| uint8_t | 32 | 32 | 32 | 32 | 32 | 161 | 0.16 |
| uint8_t | 64 | 64 | 64 | 64 | 64 | 195 | 0.05 |
| uint8_t | 128 | 128 | 128 | 128 | 128 | 382 | 0.02 |
| uint8_t | 256 | 256 | 256 | 256 | 256 | 1154 | 0.02 |
| int8_t | 32 | 32 | 32 | 32 | 32 | 157 | 0.15 |
| int8_t | 64 | 64 | 64 | 64 | 64 | 196 | 0.05 |
| int8_t | 128 | 128 | 128 | 128 | 128 | 382 | 0.02 |
| int8_t | 256 | 256 | 256 | 256 | 256 | 1149 | 0.02 |
| uint16_t | 32 | 32 | 32 | 32 | 32 | 155 | 0.15 |
| uint16_t | 64 | 64 | 64 | 64 | 64 | 252 | 0.06 |
| uint16_t | 128 | 128 | 128 | 128 | 128 | 636 | 0.04 |
| uint16_t | 256 | 256 | 256 | 256 | 256 | 2171 | 0.03 |
| int16_t | 32 | 32 | 32 | 32 | 32 | 120 | 0.12 |
| int16_t | 64 | 64 | 64 | 64 | 64 | 252 | 0.06 |
| int16_t | 128 | 128 | 128 | 128 | 128 | 636 | 0.04 |
| int16_t | 256 | 256 | 256 | 256 | 256 | 2171 | 0.03 |
VXLIB_thresholdBinary
| dTypeIn0 | dTypeOut | width | height | strideIn0 | strideOut | EVM Cycles | Cycles/Pixel |
| uint8_t | uint8_t | 32 | 32 | 32 | 32 | 116 | 0.11 |
| uint8_t | uint8_t | 64 | 64 | 64 | 64 | 148 | 0.04 |
| uint8_t | uint8_t | 128 | 128 | 128 | 128 | 340 | 0.02 |
| uint8_t | uint8_t | 256 | 256 | 256 | 256 | 1108 | 0.02 |
| int8_t | int8_t | 32 | 32 | 32 | 32 | 125 | 0.12 |
| int8_t | int8_t | 64 | 64 | 64 | 64 | 157 | 0.04 |
| int8_t | int8_t | 128 | 128 | 128 | 128 | 349 | 0.02 |
| int8_t | int8_t | 256 | 256 | 256 | 256 | 1117 | 0.02 |
| uint16_t | uint16_t | 32 | 32 | 32 | 32 | 116 | 0.11 |
| uint16_t | uint16_t | 64 | 64 | 64 | 64 | 212 | 0.05 |
| uint16_t | uint16_t | 128 | 128 | 128 | 128 | 638 | 0.04 |
| uint16_t | uint16_t | 256 | 256 | 256 | 256 | 2132 | 0.03 |
| int16_t | int16_t | 32 | 32 | 32 | 32 | 116 | 0.11 |
| int16_t | int16_t | 64 | 64 | 64 | 64 | 212 | 0.05 |
| int16_t | int16_t | 128 | 128 | 128 | 128 | 596 | 0.04 |
| int16_t | int16_t | 256 | 256 | 256 | 256 | 2132 | 0.03 |
VXLIB_tableLookup
| dTypeIn | width | height | strideIn0 | strideIn1 | strideOut | count | offset | EVM Cycles | Cycles/Pixel |
| uint8_t | 32 | 32 | 32 | 32 | 32 | 32 | 0 | 497 | 0.49 |
| uint8_t | 64 | 64 | 64 | 64 | 64 | 64 | 0 | 834 | 0.2 |
| uint8_t | 128 | 128 | 128 | 128 | 128 | 128 | 0 | 1503 | 0.09 |
| uint8_t | 256 | 256 | 256 | 256 | 256 | 256 | 0 | 5535 | 0.08 |
| uint8_t | 256 | 256 | 256 | 256 | 256 | 256 | 10 | 5535 | 0.08 |
| int8_t | 32 | 32 | 32 | 32 | 32 | 32 | 0 | 512 | 0.5 |
| int8_t | 64 | 64 | 64 | 64 | 64 | 64 | 0 | 869 | 0.21 |
| int8_t | 128 | 128 | 128 | 128 | 128 | 127 | 0 | 1569 | 0.1 |
| int8_t | 256 | 256 | 256 | 256 | 256 | 127 | 0 | 5788 | 0.09 |
| int8_t | 256 | 256 | 256 | 256 | 256 | 127 | 10 | 5788 | 0.09 |
| uint16_t | 32 | 32 | 32 | 32 | 32 | 32 | 0 | 572 | 0.56 |
| uint16_t | 64 | 64 | 64 | 64 | 64 | 64 | 0 | 961 | 0.23 |
| uint16_t | 128 | 128 | 128 | 128 | 128 | 128 | 12 | 1826 | 0.11 |
| uint16_t | 128 | 128 | 128 | 128 | 128 | 128 | 0 | 1826 | 0.11 |
| uint16_t | 256 | 256 | 256 | 256 | 256 | 512 | 30 | 6879 | 0.1 |
| int16_t | 32 | 32 | 32 | 32 | 32 | 32 | 0 | 572 | 0.56 |
| int16_t | 64 | 64 | 64 | 64 | 64 | 64 | 0 | 992 | 0.24 |
| int16_t | 128 | 128 | 128 | 128 | 128 | 128 | 12 | 1948 | 0.12 |
| int16_t | 128 | 128 | 128 | 128 | 128 | 128 | 0 | 1948 | 0.12 |
| int16_t | 256 | 256 | 256 | 256 | 256 | 512 | 30 | 7324 | 0.11 |
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 | 197 | 0.05 |
| uint8_t | uint8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | Saturate | 388 | 0.02 |
| uint8_t | uint8_t | uint8_t | 256 | 256 | 256 | 256 | 256 | Saturate | 1112 | 0.02 |
| uint8_t | uint8_t | int16_t | 64 | 64 | 64 | 64 | 64 | Saturate | 212 | 0.05 |
| uint8_t | uint8_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | 599 | 0.04 |
| uint8_t | uint8_t | int16_t | 256 | 256 | 256 | 256 | 256 | Saturate | 2133 | 0.03 |
| uint8_t | int16_t | int16_t | 64 | 64 | 64 | 64 | 64 | Saturate | 214 | 0.05 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | 671 | 0.04 |
| uint8_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 256 | Saturate | 2324 | 0.04 |
| int16_t | int16_t | int16_t | 64 | 64 | 64 | 64 | 64 | Saturate | 213 | 0.05 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Saturate | 646 | 0.04 |
| int16_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 256 | Saturate | 2182 | 0.03 |
| uint8_t | uint8_t | uint8_t | 64 | 64 | 64 | 64 | 64 | Wrap | 146 | 0.04 |
| uint8_t | uint8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | Wrap | 345 | 0.02 |
| uint8_t | uint8_t | uint8_t | 256 | 256 | 256 | 256 | 256 | Wrap | 1164 | 0.02 |
| uint8_t | uint8_t | int16_t | 64 | 64 | 64 | 64 | 64 | Wrap | 212 | 0.05 |
| uint8_t | uint8_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | 645 | 0.04 |
| uint8_t | uint8_t | int16_t | 256 | 256 | 256 | 256 | 256 | Wrap | 2181 | 0.03 |
| uint8_t | int16_t | int16_t | 64 | 64 | 64 | 64 | 64 | Wrap | 218 | 0.05 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | 636 | 0.04 |
| uint8_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 256 | Wrap | 2328 | 0.04 |
| int16_t | int16_t | int16_t | 64 | 64 | 64 | 64 | 64 | Wrap | 265 | 0.06 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | Wrap | 650 | 0.04 |
| int16_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 256 | Wrap | 2186 | 0.03 |
VXLIB_or
| dTypeIn | width | height | strideIn0 | strideIn1 | strideOut | EVM Cycles | Cycles/Pixel |
| uint8_t | 32 | 32 | 32 | 32 | 32 | 159 | 0.16 |
| uint8_t | 64 | 64 | 64 | 64 | 64 | 196 | 0.05 |
| uint8_t | 128 | 128 | 128 | 128 | 128 | 383 | 0.02 |
| uint8_t | 256 | 256 | 256 | 256 | 256 | 1153 | 0.02 |
| int8_t | 32 | 32 | 32 | 32 | 32 | 157 | 0.15 |
| int8_t | 64 | 64 | 64 | 64 | 64 | 149 | 0.04 |
| int8_t | 128 | 128 | 128 | 128 | 128 | 388 | 0.02 |
| int8_t | 256 | 256 | 256 | 256 | 256 | 1151 | 0.02 |
| uint16_t | 32 | 32 | 32 | 32 | 32 | 115 | 0.11 |
| uint16_t | 64 | 64 | 64 | 64 | 64 | 213 | 0.05 |
| uint16_t | 128 | 128 | 128 | 128 | 128 | 635 | 0.04 |
| uint16_t | 256 | 256 | 256 | 256 | 256 | 2172 | 0.03 |
| int16_t | 32 | 32 | 32 | 32 | 32 | 155 | 0.15 |
| int16_t | 64 | 64 | 64 | 64 | 64 | 253 | 0.06 |
| int16_t | 128 | 128 | 128 | 128 | 128 | 636 | 0.04 |
| int16_t | 256 | 256 | 256 | 256 | 256 | 2171 | 0.03 |
VXLIB_not
| dTypeIn | width | height | strideIn0 | strideIn1 | strideOut | EVM Cycles | Cycles/Pixel |
| uint8_t | 32 | 32 | 32 | 32 | 32 | 115 | 0.11 |
| uint8_t | 64 | 64 | 64 | 64 | 64 | 146 | 0.04 |
| uint8_t | 128 | 128 | 128 | 128 | 128 | 338 | 0.02 |
| uint8_t | 256 | 256 | 256 | 256 | 256 | 1106 | 0.02 |
| int8_t | 32 | 32 | 32 | 32 | 32 | 114 | 0.11 |
| int8_t | 64 | 64 | 64 | 64 | 64 | 146 | 0.04 |
| int8_t | 128 | 128 | 128 | 128 | 128 | 338 | 0.02 |
| int8_t | 256 | 256 | 256 | 256 | 256 | 1106 | 0.02 |
| uint16_t | 32 | 32 | 32 | 32 | 32 | 114 | 0.11 |
| uint16_t | 64 | 64 | 64 | 64 | 64 | 210 | 0.05 |
| 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 | 114 | 0.11 |
| int16_t | 64 | 64 | 64 | 64 | 64 | 210 | 0.05 |
| int16_t | 128 | 128 | 128 | 128 | 128 | 594 | 0.04 |
| int16_t | 256 | 256 | 256 | 256 | 256 | 2130 | 0.03 |
VXLIB_normL1
| dTypeIn | dypeOut | width | height | strideIn0 | strideIn1 | strideOut | EVM Cycles | Cycles/Pixel |
| int8_t | uint8_t | 32 | 32 | 32 | 32 | 32 | 106 | 0.1 |
| int8_t | uint8_t | 64 | 64 | 64 | 64 | 64 | 154 | 0.04 |
| int8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | 343 | 0.02 |
| int8_t | uint8_t | 256 | 256 | 256 | 256 | 256 | 1114 | 0.02 |
| int16_t | uint16_t | 32 | 32 | 32 | 32 | 32 | 120 | 0.12 |
| int16_t | uint16_t | 64 | 64 | 64 | 64 | 64 | 216 | 0.05 |
| int16_t | uint16_t | 128 | 128 | 128 | 128 | 128 | 600 | 0.04 |
| int16_t | uint16_t | 256 | 256 | 256 | 256 | 256 | 2138 | 0.03 |
VXLIB_normL2
| dTypeIn | dypeOut | width | height | strideIn0 | strideIn1 | strideOut | EVM Cycles | Cycles/Pixel |
| int8_t | uint8_t | 32 | 32 | 32 | 32 | 32 | 459 | 0.45 |
| int8_t | uint8_t | 64 | 64 | 64 | 64 | 64 | 1414 | 0.35 |
| int8_t | uint8_t | 128 | 128 | 128 | 128 | 128 | 5254 | 0.32 |
| int8_t | uint8_t | 256 | 256 | 256 | 256 | 256 | 20614 | 0.31 |
| int16_t | uint16_t | 32 | 32 | 32 | 32 | 32 | 487 | 0.48 |
| int16_t | uint16_t | 64 | 64 | 64 | 64 | 64 | 1542 | 0.38 |
| int16_t | uint16_t | 128 | 128 | 128 | 128 | 128 | 5767 | 0.35 |
| int16_t | uint16_t | 256 | 256 | 256 | 256 | 256 | 22663 | 0.35 |
VXLIB_thresholdRange
| dTypeIn0 | dTypeOut | width | height | strideIn0 | strideOut | EVM Cycles | Cycles/Pixel |
| uint8_t | uint8_t | 32 | 32 | 32 | 32 | 118 | 0.12 |
| uint8_t | uint8_t | 64 | 64 | 64 | 64 | 150 | 0.04 |
| uint8_t | uint8_t | 128 | 128 | 128 | 128 | 342 | 0.02 |
| uint8_t | uint8_t | 256 | 256 | 256 | 256 | 1109 | 0.02 |
| int8_t | int8_t | 32 | 32 | 32 | 32 | 119 | 0.12 |
| int8_t | int8_t | 64 | 64 | 64 | 64 | 149 | 0.04 |
| int8_t | int8_t | 128 | 128 | 128 | 128 | 341 | 0.02 |
| int8_t | int8_t | 256 | 256 | 256 | 256 | 1109 | 0.02 |
| uint16_t | uint16_t | 32 | 32 | 32 | 32 | 118 | 0.12 |
| uint16_t | uint16_t | 64 | 64 | 64 | 64 | 213 | 0.05 |
| uint16_t | uint16_t | 128 | 128 | 128 | 128 | 598 | 0.04 |
| uint16_t | uint16_t | 256 | 256 | 256 | 256 | 2134 | 0.03 |
| int16_t | int16_t | 32 | 32 | 32 | 32 | 118 | 0.12 |
| int16_t | int16_t | 64 | 64 | 64 | 64 | 229 | 0.06 |
| int16_t | int16_t | 128 | 128 | 128 | 128 | 598 | 0.04 |
| int16_t | int16_t | 256 | 256 | 256 | 256 | 2149 | 0.03 |
VXLIB_median
| dTypeIn | widthIn | heightIn | M | N | widthOut | heightOut | kernelType | EVM Cycles | Cycles/NumPt |
| uint8_t | 128 | 128 | 3 | 3 | 126 | 126 | 0 | 2115 | 0.13 |
| uint8_t | 256 | 256 | 3 | 3 | 254 | 254 | 0 | 8229 | 0.13 |
| int8_t | 128 | 128 | 3 | 3 | 126 | 126 | 0 | 2115 | 0.13 |
| int8_t | 256 | 256 | 3 | 3 | 254 | 254 | 0 | 8229 | 0.13 |
| uint16_t | 128 | 128 | 3 | 3 | 126 | 126 | 0 | 4157 | 0.25 |
| uint16_t | 256 | 256 | 3 | 3 | 254 | 254 | 0 | 16348 | 0.25 |
| int16_t | 128 | 128 | 3 | 3 | 126 | 126 | 0 | 4115 | 0.25 |
| int16_t | 256 | 256 | 3 | 3 | 254 | 254 | 0 | 16357 | 0.25 |
| uint8_t | 128 | 128 | 4 | 4 | 125 | 125 | 1 | 106908 | 0.43 |
| uint8_t | 256 | 256 | 4 | 4 | 253 | 253 | 1 | 282095 | 0.28 |
| int8_t | 128 | 128 | 5 | 5 | 124 | 124 | 1 | 182352 | 0.47 |
| int8_t | 256 | 256 | 5 | 5 | 252 | 252 | 1 | 516708 | 0.33 |
| uint8_t | 128 | 128 | 6 | 6 | 123 | 123 | 1 | 282037 | 0.52 |
| uint8_t | 256 | 256 | 6 | 6 | 251 | 251 | 1 | 851840 | 0.38 |
| int8_t | 128 | 128 | 7 | 7 | 122 | 122 | 1 | 439316 | 0.6 |
| int8_t | 256 | 256 | 7 | 7 | 250 | 250 | 1 | 1396994 | 0.46 |
| uint16_t | 128 | 128 | 4 | 4 | 125 | 125 | 1 | 147813 | 0.59 |
| uint16_t | 256 | 256 | 4 | 4 | 253 | 253 | 1 | 435079 | 0.42 |
| int16_t | 128 | 128 | 5 | 5 | 124 | 124 | 1 | 262826 | 0.68 |
| int16_t | 256 | 256 | 5 | 5 | 252 | 252 | 1 | 837688 | 0.53 |
| uint16_t | 128 | 128 | 6 | 6 | 123 | 123 | 1 | 426520 | 0.78 |
| uint16_t | 256 | 256 | 6 | 6 | 251 | 251 | 1 | 1444233 | 0.64 |
| int16_t | 128 | 128 | 7 | 7 | 122 | 122 | 1 | 692390 | 0.95 |
| int16_t | 256 | 256 | 7 | 7 | 250 | 250 | 1 | 2442417 | 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 | 235 | 0.23 |
| uint8_t | int16_t | uint8_t | 64 | 64 | 64 | 64 | 3 | 3 | 4 | 0 | 0 | 0 | 0 | 557 | 0.14 |
| uint8_t | int16_t | uint8_t | 128 | 128 | 128 | 128 | 3 | 3 | 4 | 0 | 0 | 0 | 0 | 1729 | 0.11 |
| uint8_t | int16_t | int16_t | 32 | 32 | 32 | 32 | 3 | 3 | 4 | 0 | 0 | 0 | 0 | 235 | 0.23 |
| uint8_t | int16_t | int16_t | 64 | 64 | 64 | 64 | 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 | 1730 | 0.11 |
| uint8_t | int16_t | uint8_t | 32 | 32 | 32 | 32 | 5 | 5 | 4 | 0 | 0 | 0 | 0 | 434 | 0.42 |
| uint8_t | int16_t | uint8_t | 64 | 64 | 64 | 64 | 5 | 5 | 4 | 0 | 0 | 0 | 0 | 1381 | 0.34 |
| uint8_t | int16_t | uint8_t | 128 | 128 | 128 | 128 | 5 | 5 | 4 | 0 | 0 | 0 | 0 | 5195 | 0.32 |
| uint8_t | int16_t | int16_t | 32 | 32 | 32 | 32 | 5 | 5 | 4 | 0 | 0 | 0 | 0 | 429 | 0.42 |
| uint8_t | int16_t | int16_t | 64 | 64 | 64 | 64 | 5 | 5 | 4 | 0 | 0 | 0 | 0 | 1393 | 0.34 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 5 | 5 | 4 | 0 | 0 | 0 | 0 | 5194 | 0.32 |
| uint8_t | int16_t | uint8_t | 32 | 32 | 32 | 32 | 7 | 7 | 5 | 0 | 0 | 0 | 0 | 521 | 0.51 |
| uint8_t | int16_t | uint8_t | 64 | 64 | 64 | 64 | 7 | 7 | 5 | 0 | 0 | 0 | 0 | 1813 | 0.44 |
| uint8_t | int16_t | uint8_t | 128 | 128 | 128 | 128 | 7 | 7 | 5 | 0 | 0 | 0 | 0 | 7094 | 0.43 |
| uint8_t | int16_t | int16_t | 32 | 32 | 32 | 32 | 7 | 7 | 5 | 0 | 0 | 0 | 0 | 522 | 0.51 |
| uint8_t | int16_t | int16_t | 64 | 64 | 64 | 64 | 7 | 7 | 5 | 0 | 0 | 0 | 0 | 1814 | 0.44 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 7 | 7 | 5 | 0 | 0 | 0 | 0 | 7094 | 0.43 |
| uint8_t | int16_t | uint8_t | 32 | 32 | 32 | 32 | 9 | 9 | 5 | 0 | 0 | 0 | 0 | 1091 | 1.07 |
| uint8_t | int16_t | uint8_t | 64 | 64 | 64 | 64 | 9 | 9 | 5 | 0 | 0 | 0 | 0 | 4337 | 1.06 |
| uint8_t | int16_t | uint8_t | 128 | 128 | 128 | 128 | 9 | 9 | 5 | 0 | 0 | 0 | 0 | 17689 | 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 | 4325 | 1.06 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 9 | 9 | 5 | 0 | 0 | 0 | 0 | 17690 | 1.08 |
| uint8_t | int16_t | uint8_t | 32 | 32 | 32 | 32 | 8 | 13 | 6 | 0 | 0 | 0 | 0 | 2536 | 2.48 |
| uint8_t | int16_t | uint8_t | 64 | 64 | 64 | 64 | 27 | 33 | 9 | 0 | 0 | 0 | 0 | 58714 | 14.33 |
| uint8_t | int16_t | uint8_t | 128 | 128 | 128 | 128 | 89 | 67 | 12 | 0 | 0 | 0 | 0 | 1484933 | 90.63 |
| uint8_t | int16_t | int16_t | 32 | 32 | 32 | 32 | 8 | 13 | 6 | 0 | 0 | 0 | 0 | 2483 | 2.42 |
| uint8_t | int16_t | int16_t | 64 | 64 | 64 | 64 | 27 | 33 | 9 | 0 | 0 | 0 | 0 | 58566 | 14.3 |
| uint8_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 89 | 67 | 12 | 0 | 0 | 0 | 0 | 1484442 | 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 | 4090 | 3.99 |
| uint8_t | uint8_t | 64 | 64 | 64 | 64 | 23 | 54 | 7619 | 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 | 4133 | 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 | 92231 | 5.63 |
VXLIB_meanStdDev
| dTypeIn | dTypeOut | width | height | strideIn | EVM Cycles | Cycles/Pixel |
| uint8_t | float | 32 | 32 | 32 | 401 | 0.39 |
| uint8_t | float | 64 | 64 | 64 | 588 | 0.14 |
| uint8_t | float | 128 | 128 | 128 | 1354 | 0.08 |
| uint16_t | float | 32 | 32 | 32 | 501 | 0.49 |
| uint16_t | float | 64 | 64 | 64 | 906 | 0.22 |
| uint16_t | float | 128 | 128 | 128 | 2423 | 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 | 508 | 0.12 |
| uint8_t | uint8_t | 128 | 128 | 3 | 128 | 128 | 0 | 0 | 0 | 0 | 0 | 1500 | 0.09 |
| uint8_t | uint8_t | 256 | 256 | 3 | 256 | 256 | 0 | 0 | 0 | 0 | 0 | 5118 | 0.08 |
| uint8_t | uint8_t | 64 | 64 | 5 | 64 | 64 | 8 | 0 | 0 | 0 | 0 | 1430 | 0.35 |
| uint8_t | uint8_t | 128 | 128 | 5 | 128 | 128 | 8 | 0 | 0 | 0 | 0 | 5162 | 0.32 |
| uint8_t | uint8_t | 256 | 256 | 5 | 256 | 256 | 8 | 0 | 0 | 0 | 0 | 20476 | 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 | 794 | 0.19 |
| uint8_t | uint8_t | 128 | 128 | 62 | 62 | 5 | 128 | 62 | 0 | 0 | 0 | 0 | 2736 | 0.17 |
| uint8_t | uint8_t | 256 | 256 | 126 | 126 | 5 | 256 | 126 | 0 | 0 | 0 | 0 | 10696 | 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 | 361 | 0.35 |
| int16_t | int16_t | int16_t | 64 | 64 | 64 | 64 | 64 | 1057 | 0.26 |
| int16_t | int16_t | int16_t | 128 | 128 | 128 | 128 | 128 | 3738 | 0.23 |
| int16_t | int16_t | int16_t | 256 | 256 | 256 | 256 | 256 | 14493 | 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 | 67027 | 16.43 |
| uint8_t | uint32_t | 128 | 128 | 128 | 0 | 256 | 100 | 266550 | 16.27 |
| uint8_t | uint32_t | 256 | 256 | 256 | 0 | 256 | 100 | 1065325 | 16.25 |
| uint8_t | uint32_t | 512 | 512 | 512 | 0 | 256 | 100 | 4257372 | 16.24 |