content here.
content here.

Blackfin Image Processing Toolbox

Blackfin Image Processing Toolbox is a set of image processing primitives designed to enable faster development of complex image or video processing solutions on Blackfin. It has been highly optimised to be run on Analog Devices’ Blackfin processor family. It is a self-contained software module.

Product also provides C reference codes and wrapper codes for OpenCV like APIs. Along ...More

Blackfin Image Processing Toolbox

Product Description

Blackfin Image Processing Toolbox is a set of image processing primitives designed to enable faster development of complex image or video processing solutions on Blackfin. It has been highly optimised to be run on Analog Devices’ Blackfin processor family. It is a self-contained software module.

Product also provides C reference codes and wrapper codes for OpenCV like APIs. Along with this demo code is provided to demonstrate the usage of these primitives on Blackfin.

The code has been implemented such that it is able to work on images that are both in L1 and L3 (external memories like SDRAM/DDRAM) memory. Memory movement APIs help in moving data from L3 to L1 and back through MDMA.

Td

TECHNICAL DOCUMENTATION

Eb

EVALUATION BOARDS & DEVELOPMENT KITS

Ts

TOOLS, SOFTWARE & SIMULATION MODELS

Features


Functions


Performance Metrics

MIPS summary:
Memory(Bytes) Performance BF533

Module

Code

Stack

Data
RAM

Data
ROM

Average
cycles/pel

MIPS
adi_RGB2GRAY 168 12 0 0 3.45 13.56
adi_RGB2HSV 240 40 6 512 32.25 126.80
adi_GRAY2RGB 78 16 0 0 2.43 9.54
adi_HSV2RGB 258 36 0 36 43.22 169.95
adi_RGB2YCbCrBT601Range16to235 198 32 0 0 8.24 3.40
adi_YCbCr2RGBBT601Range16to235 238 20 0 24 5.71 22.44
adi_RGB2YCbCrBT601Range0to255 194 40 0 0 9.24 36.34
adi_YCbCr2RGBBT601Range0to255 342 20 0 56 9.98 39.26
adi_RGB2XYZ 142 20 0 18 9.18 36.10
adi_conv2D3by3_8 1496 56 0 0 9.83 38.64
adi_conv2D5by5_8 3974 60 0 0 29.06 114.27
adi_conv2D3by3_16 824 56 0 0 7.26 28.57
adi_conv2D5by5_16 2456 56 0 0 16.37 64.37
adi_corr2D3by3_8 706 40 0 0 8.99 35.35
adi_corr2D5by5_8 1866 60 0 0 27.75 109.13
adi_corr2D3by3_16 448 56 0 0 7.09 27.89
adi_corr2D5by5_16 1232 56 0 0 16.74 65.83
adi_erosion-cross 1198 28 60 0 4.73 18.60
adi_erosion-rectangle 1198 28 60 0 4.96 19.50
adi_erosion-custom 1198 28 60 0 12.29 48.33
adi_dilation-cross 1198 28 60 0 4.75 18.68
adi_dilation-rectangle 1198 28 60 0 4.98 19.58
adi_dilation-custom 1198 28 60 0 12.21 48.01
adi_morph_open-(cross) 88 40 0 0 9.14 35.94
adi_morph_open -(rectangle) 88 40 0 0 9.78 38.46
adi_morph_open -(custom) 88 40 0 0 27.39 107.70
adi_morph_close-(cross) 88 40 0 0 9.15 35.98
adi_morph_close-(rectangle) 88 40 0 0 9.78 38.46
adi_morph_close-(custom) 88 40 0 0 27.39 107.70
adi_morph_tophat-(cross) 122 52 0 0 10.68 42.00
adi_morph_tophat-(rectangle) 122 52 0 0 11.30 44.43
adi_morph_tophat-(custom) 122 52 0 0 28.91 113.68
adi_morph_blackhat-(cross) 126 52 0 0 10.68 42.00
adi_morph_blackhat-(rectangle) 126 52 0 0 11.30 44.43
adi_morph_blackhat-(custom) 126 52 0 0 28.91 113.68
adi_morph_gradient-(cross) 152 48 0 0 9.55 37.55
adi_morph_gradient-(rectangle) 152 48 0 0 10.08 39.64
adi_morph_gradient-(custom) 152 48 0 0 24.38 95.87
adi_boundary_i8 234 28 0 0 5.65 22.22
adi_boundary_i16s 146 24 0 0 4.63 18.20
adi_morph_skeleton 488 32 48 0 4832.15 19000.79
adi_floodfill 2638 48 30720 0 242.84 954.89
adi_boundary_i8 62 0 0 0 7.45 0.46
adi_boundary_i16s 66 0 0 0 7.44 0.46
adi_sobel_3x3_horz_i8 380 24 0 0 2.73 10.75
adi_sobel_3x3_vert_i8 390 24 0 0 3.00 11.80
adi_sobel_3x3_cross_i8 234 24 0 0 1.75 6.89
adi_sobel_5x5_horz_i8 584 40 0 48 9.80 38.53
adi_sobel_5x5_vert_i8 692 64 0 12 13.59 53.45
adi_sobel_5x5_cross_i8 584 40 0 48 9.83 38.65
adi_sobel_3x3_horz_i16 212 16 0 0 4.24 16.69
adi_sobel_3x3_vert_i16 212 16 0 0 3.27 12.85
adi_sobel_3x3_cross_i16 164 16 0 0 2.27 8.93
adi_sobel_5x5_horz_i16 604 16 0 20 12.30 48.37
adi_sobel_5x5_vert_i16 574 16 0 20 12.83 50.44
adi_sobel_5x5_cross_i16 484 16 0 16 10.34 40.65
adi_mean 92 8 0 0 0.73 2.88
adi_mean_16bit 104 12 0 0 1.09 4.27
adi_AbsDiff_8bit 60 0 0 0 1.82 0.01
adi_AbsDiff_16bit 54 8 0 0 2.86 0.01
adi_ATriggerObject_8bit 46 12 0 0 2.19 0.01
adi_TriggerObject_16bit 464 12 0 0 3.30 0.01
adi_hist_i8 152 28 0 0 18.31 72.00
adi_hist_i16 152 28 0 0 1173.00 4612.42
adi_gradient_i8 204 24 0 0 5.18 0.02
adi_std_i8 250 28 0 0 6.79 0.03
adi_HoughVoting(6.18% non Zero pixels) 242 28 0 0 3484.41 846.74
adi_HoughTransform(6.18% non Zero pixels) 422 28 0 0 NA NA
adi_FindLinesOfMaxLength 174 24 0 0 One-time NA
adi_HoughTransformInit 416 132 0 0 One-time NA
adi_IntegralImage_i8 106 4 0 0 4.20 16.50
adi_IntegralImage_i16 120 0 0 0 3.20 12.59
adi_TiltedImage_i8 146 8 0 0 6.30 24.77
adi_TiltedImage_i16 160 8 0 0 5.31 20.88
adi_MatrixAddition 84 16 0 0 11.26 0.01
adi_MatrixSubtraction 84 16 0 0 3.67 0.01
adi_MatrixMultiplication 320 60 0 0 282.40 0.11
adi_MatrixMultTranspose 314 60 0 0 190.59 0.14
adi_MatrixTranspose 60 16 0 0 5.57 0.01
adi_MatInverseFloat16 1696 44 0 0 3452.77 2.54
adi_median_i8 336 36 0 0 12.78 50.24
adi_median_il6 328 36 0 0 11.28 44.36
adi_Threshold_Binary_i8 92 16 0 0 1.90 7.49
adi_Threshold_Binary_i16 92 8 0 0 1.91 7.51
adi_Threshold_Binary_Inv_i8 108 16 0 0 2.40 9.45
adi_Threshold_Binary_Inv_i16 110 12 0 0 2.41 9.47
adi_Threshold_Trunc_i8 136 16 0 0 3.13 12.31
adi_Threshold_Trunc_i16 80 8 0 0 3.13 12.31
adi_Threshold_ToZero_i8 98 16 0 0 2.37 9.34
adi_Threshold_ToZero_i16 66 8 0 0 2.13 8.36
adi_Threshold_ToZero_Inv_i8 116 16 0 0 2.88 11.33
adi_Threshold_ToZero_Inv_i16 78 8 0 0 2.63 10.34
adi_Threshold_ToBlack_i8 130 16 0 0 3.13 12.31
adi_Threshold_ToBlack_i16 86 8 0 0 3.13 12.30
adi_error_diffusion 414 36 4 0 6.11 24.04
adiVectorDotProduct 44 20 0 0 306.2 0.02
adiVectorCrossProduct 588 16 0 0 592.33 0.03
adiVectorNorm 572 16 0 0 220.4 0.02
adi_pyramid_down_i8(gaussian) 4404 192 0 0 37.12 145.95
adi_pyramid_down_i8(gradient horz) 992 180 0 48 15.01 59.03
adi_median_i8 1100 204 0 12 18.76 73.77
adi_KalmanCreate 306 24 0 0 One-time NA
adi_KalmanCorrect 1192 168 0 0 719.3 2.59
adi_KalmanPredict 504 168 0 0 719.3 0.00
  • MIPS measured optimal memory layout, ADSP BF533
  • For the optimal memory layout, all code and data used by the module was L3 cached and the input/output buffers were filled using MDMA memory.
  • "Data RAM" for one instance, includes Stack, Scratch, Instance/Stage, Minimum Input and Output Single Buffers.
  • 1 KiB = 1024 Bytes.
  • BF527, BF533, BF54x and BF561 supported.

Applications


Requirements


Availability and Licensing

Each module supports the Analog Devices, Inc. (ADI) Blackfin Processor family and is a licensed product that is available in object code format. Recipients must sign a license agreement with ADI prior to being shipped the modules identified in the license agreement.