logo    
Superior Image Processing  
seperator
line decor
  
line decor
seperator
 
 
 
 
seperator seperator
 
 
Performance Comparison of Anona Labs IPT and Matlab® Image Processing Toolbox:

Table of Contents

1.      Introduction. 1

2.      Benchmarking Method. 1

3.      Results. 2

3.1.       Color Space Transformations. 2

3.2.       Geometric Transformations. 3

3.3.       B&W Morphology. 4

3.4.       Gray Morphology. 6

3.5.       Edge Detection. 9

3.6.       Image Enhancement. 10

3.7.       Image Analysis. 12

3.8.       Linear Filters. 14

3.9.       Linear transforms. 14

 

1.     Introduction

This document contains a comprehensive benchmark of the performance of Anona Labs IPT compared to Matlab’s Image Processing Toolbox. More than 80% of the IPT functions where benchmarked.

2.     Benchmarking Method

2.1.    System Specification:

CPU: Intel® Core2 Quad Q6600 (2.4Ghz). Memory:  2GB RAM, DDR2 800Mhz.

Software: Windows XP, Matlab® 7.5 (2007b), Anona Labs IPT 1.0.

2.2.    Method

·         Both Matlab and the IPT are set to use all processors cores (4 threads).

·         Time is measured using Matlab’s ‘tic’ and ‘toc’.

·         In order to eliminate overhead times related to m-files and dlls loading each of the functions is called twice before the time measurement start.

3.     Results

 

The details of the benchmark results are listed in the tables below.

3.1.  Color Space Transformations

Function Name

Image Size

Image Type

AL Time [msec]

Matlab Time [msec]

Performance Gain

RGB2Gray

600x800

uint8

3.1

12.2

4.0

600x800

uint16

5.6

17.2

3.1

600x800

single

4.8

8.9

1.8

600x800

double

11.6

12.9

1.1

RGB2HSV

600x800

uint8

6.6

276.1

42.0

600x800

uint16

21.0

277.8

13.2

600x800

single

16.4

214.6

13.1

600x800

double

21.1

247.0

11.7

RGB2HLS

600x800

uint8

8.7

328.7

37.9

600x800

uint16

20.6

342.5

16.7

600x800

single

44.6

267.1

6.0

600x800

double

73.6

323.2

4.4

RGB2NTSC

600x800

uint8

6.2

83.6

13.5

600x800

uint16

7.1

83.5

11.8

600x800

single

9.2

70.6

7.7

600x800

double

17.2

52.0

3.0

RGB2YCbCr

600x800

uint8

3.4

115.0

34.3

600x800

uint16

6.8

115.2

16.9

600x800

single

9.1

110.9

12.2

600x800

double

16.2

94.7

5.8

RGB2YUV

600x800

uint8

3.3

119.5

35.9

600x800

uint16

6.9

119.4

17.2

600x800

single

8.8

71.4

8.1

600x800

double

16.2

89.0

5.5

RGB2XYZ

600x800

uint8

5.9

74.2

12.6

600x800

uint16

6.9

75.2

10.9

600x800

single

8.8

35.4

4.0

600x800

double

16.0

55.7

3.5

RGB2Lab

600x800

uint8

181.2

246.6

1.4

600x800

uint16

98.6

263.3

2.7

600x800

single

96.0

184.6

1.9

600x800

double

80.4

233.6

2.9

RGB2Luv

600x800

uint8

20.9

214.3

10.2

600x800

uint16

14.5

214.1

14.8

600x800

single

42.7

137.7

3.2

600x800

double

53.6

195.6

3.6

XYZ2Lab

600x800

uint16

133.0

335.8

2.5

600x800

single

64.4

223.0

3.5

Lab2XYZ

600x800

uint16

97.3

344.2

3.5

600x800

single

63.6

219.4

3.5

Lab2LCH

600x800

single

23.6

150.0

6.4

LCH2Lab

600x800

single

27.2

55.8

2.0

 

 

3.2.  Geometric Transformations

Function Name

Image Size

Image Type

Interpolation

AL Time [msec]

Matlab Time [msec]

Performance Gain

ImRotate

600x1000

uint8

nearest

4.7

444.0

94.1

600x1000

uint8

bilinear

7.1

665.5

93.5

600x1000

uint8

bicubic

12.9

1171.0

90.4

600x1000

uint16

nearest

7.8

446.8

57.4

600x1000

uint16

bilinear

9.8

649.8

66.6

600x1000

uint16

bicubic

23.8

1160.7

48.7

600x1000

single

nearest

21.5

451.5

21.0

600x1000

single

bilinear

16.0

644.1

40.4

600x1000

single

bicubic

27.5

1113.7

40.6

600x1000

double

nearest

41.9

441.8

10.5

600x1000

double

bilinear

42.4

654.9

15.4

600x1000

double

bicubic

53.7

1142.1

21.3

 

Function Name

Image Size

Image Type

Interpolation

AL Time [msec]

Matlab Time [msec]

Performance Gain

ImRemap

600x1000

uint8

nearest

11.0

122.6

11.1

600x1000

uint8

bilinear

11.3

213.4

18.8

600x1000

uint8

bicubic

15.0

576.2

38.3

600x1000

uint16

nearest

11.8

122.9

10.4

600x1000

uint16

bilinear

12.8

214.6

16.8

600x1000

uint16

bicubic

17.2

575.7

33.5

600x1000

single

nearest

13.8

120.0

8.7

600x1000

single

bilinear

14.3

212.3

14.8

600x1000

single

bicubic

18.2

573.8

31.6

600x1000

double

nearest

23.0

121.9

5.3

600x1000

double

bilinear

23.3

215.8

9.3

600x1000

double

bicubic

27.1

568.4

21.0

 

Function Name

Image Size

Image Type

Interpolation

AL Time [msec]

Matlab Time [msec]

Performance Gain

ImAffine

600x1000

uint8

nearest

5.5

537.9

97.6

600x1000

uint8

bilinear

7.0

753.3

107.1

600x1000

uint8

bicubic

13.6

1278.4

94.1

600x1000

uint16

nearest

9.6

542.6

56.7

600x1000

uint16

bilinear

11.2

753.5

67.5

600x1000

uint16

bicubic

24.2

1288.8

53.3

600x1000

single

nearest

18.3

519.5

28.3

600x1000

single

bilinear

22.1

741.1

33.5

600x1000

single

bicubic

26.8

1230.5

45.9

600x1000

double

nearest

47.9

536.9

11.2

600x1000

double

bilinear

49.6

758.5

15.3

600x1000

double

bicubic

56.3

1260.4

22.4

 

Function Name

Image Size

Image Type

Interpolation

AL Time [msec]

Matlab Time [msec]

Performance Gain

ImPerspective

600x1000

uint8

nearest

4.6

179.2

39.3

600x1000

uint8

bilinear

5.3

288.5

54.7

600x1000

uint8

bicubic

7.9

667.9

84.5

600x1000

uint16

nearest

5.1

179.0

35.0

600x1000

uint16

bilinear

6.6

287.4

43.4

600x1000

uint16

bicubic

10.5

686.0

65.1

600x1000

single

nearest

6.7

190.6

28.6

600x1000

single

bilinear

8.7

287.5

33.1

600x1000

single

bicubic

11.3

677.1

60.1

600x1000

double

nearest

14.5

187.8

13.0

600x1000

double

bilinear

16.5

292.9

17.7

600x1000

double

bicubic

18.5

694.3

37.5

 

 

3.3.  B&W Morphology

Function Name

Image Size

Image Type

Operation

Iterations

AL Time [msec]

Matlab Time [msec]

Performance Gain

BwMorph

256x256

logical

erode

1

0.2

1.1

4.5

256x256

logical

dilate

1

0.2

2.6

11.4

256x256

logical

open

1

0.3

3.6

13.9

256x256

logical

close

1

0.3

3.7

13.0

256x256

logical

tophat

1

0.7

3.9

5.6

256x256

logical

bothat

1

0.5

4.0

7.3

256x256

logical

bridge

1

0.4

2.6

6.3

256x256

logical

clean

1

0.4

1.2

2.9

256x256

logical

diag

1

0.4

2.9

6.7

256x256

logical

fatten

1

0.7

2.7

3.9

256x256

logical

fill

1

0.4

2.9

6.5

256x256

logical

hbreak

1

0.7

1.2

1.8

256x256

logical

majority

1

0.4

3.3

7.9

256x256

logical

perim4

1

0.5

1.1

2.2

256x256

logical

perim8

1

0.5

1.2

2.3

256x256

logical

remove

1

0.5

1.2

2.2

256x256

logical

shrink

10

12.5

33.3

2.7

256x256

logical

skeleton

10

8.2

68.1

8.3

256x256

logical

spur

10

0.4

13.4

31.2

256x256

logical

thicken

10

15.9

85.3

5.4

256x256

logical

thin

10

8.4

13.8

1.6

 

Function Name

Image Size

Image Type

Connectivity

AL Time [msec]

Matlab Time [msec]

Performance Gain

BwArea

341x753

logical

N\A

0.8

7.7

9.6

BwAreaOpen

341x753

logical

4

7.4

830.1

112.6

341x753

logical

8

7.4

452.4

61.5

BwEuler

341x753

logical

4

1.0

8.1

8.2

341x753

logical

8

1.0

7.7

8.0

BwLabel

341x753

logical

4

4.3

25.7

5.9

341x753

logical

8

4.2

22.9

5.5

 

Function Name

Image Size

Image Type

Method

AL Time [msec]

Matlab Time [msec]

Performance Gain

BwDist

512x512

logical

chessboard

2.7

117.9

43.8

512x512

logical

cityblock

2.3

94.7

40.8

512x512

logical

euclidean

6.5

46.2

7.1

BwUltErode

512x512

logical

chessboard

13.3

145.2

10.9

512x512

logical

cityblock

12.6

121.9

9.7

512x512

logical

euclidean

16.2

106.0

6.5

 

Function Name

Image Size

Image Type

# of points

AL Time [msec]

Matlab Time [msec]

Performance Gain

BwSelect

341x753

logical

455

4.5

80.8

18.0

341x753

logical

206

4.6

92.8

20.4

341x753

logical

314

5.7

104.6

18.3

341x753

logical

464

5.4

111.0

20.4

 

 

3.4.  Gray Morphology

Function Name

Image Size

Image Type

Kernel Size

AL Time [msec]

Matlab Time [msec]

Performance Gain

ImErode

600x800

logical

7x7

3.0

54.1

17.8

600x800

logical

17x17

4.0

12.4

3.1

600x800

uint8

7x7

4.7

157.0

33.5

600x800

uint8

17x17

10.1

261.3

26.0

600x800

uint16

7x7

11.9

154.2

13.0

600x800

uint16

17x17

20.6

266.2

12.9

600x800

single

7x7

27.0

186.3

6.9

600x800

single

17x17

39.7

336.9

8.5

600x800

double

7x7

33.8

178.3

5.3

600x800

double

17x17

47.2

348.9

7.4

ImDilate

600x800

logical

7x7

2.8

43.8

15.4

600x800

logical

17x17

3.4

10.3

3.0

600x800

uint8

7x7

4.7

155.5

33.3

600x800

uint8

17x17

10.5

259.9

24.7

600x800

uint16

7x7

11.3

156.8

13.9

600x800

uint16

17x17

20.9

272.4

13.0

600x800

single

7x7

26.7

188.4

7.1

600x800

single

17x17

41.2

339.0

8.2

600x800

double

7x7

33.3

177.8

5.3

600x800

double

17x17

47.1

348.1

7.4

ImOpen

600x800

logical

7x7

5.0

8.5

1.7

600x800

logical

17x17

6.5

15.6

2.4

600x800

uint8

7x7

8.2

306.3

37.2

600x800

uint8

17x17

18.7

515.5

27.5

600x800

uint16

7x7

20.9

306.9

14.7

600x800

uint16

17x17

38.6

530.2

13.7

600x800

single

7x7

48.4

370.8

7.7

600x800

single

17x17

77.5

662.7

8.6

600x800

double

7x7

55.1

354.2

6.4

600x800

double

17x17

83.0

693.0

8.3

ImClose

600x800

logical

7x7

5.0

8.5

1.7

600x800

logical

17x17

6.3

15.2

2.4

600x800

uint8

7x7

8.4

306.6

36.5

600x800

uint8

17x17

18.5

515.3

27.8

600x800

uint16

7x7

20.8

305.9

14.7

600x800

uint16

17x17

38.8

531.6

13.7

600x800

single

7x7

48.4

371.4

7.7

600x800

single

17x17

77.2

661.9

8.6

600x800

double

7x7

55.1

354.0

6.4

600x800

double

17x17

83.3

690.8

8.3

ImTopHat

600x800

logical

7x7

5.3

9.5

1.8

600x800

logical

17x17

6.5

16.8

2.6

600x800

uint8

7x7

8.6

307.0

35.7

600x800

uint8

17x17

19.6

516.1

26.3

600x800

uint16

7x7

22.9

307.7

13.4

600x800

uint16

17x17

41.4

529.6

12.8

600x800

single

7x7

52.6

373.5

7.1

600x800

single

17x17

82.1

667.0

8.1

600x800

double

7x7

59.5

355.3

6.0

600x800

double

17x17

88.0

699.2

7.9

ImBotHat

600x800

logical

7x7

5.0

10.1

2.0

600x800

logical

17x17

6.6

17.4

2.6

600x800

uint8

7x7

8.9

305.6

34.4

600x800

uint8

17x17

19.9

516.5

25.9

600x800

uint16

7x7

22.9

308.5

13.5

600x800

uint16

17x17

41.0

535.1

13.1

600x800

single

7x7

53.1

371.1

7.0

600x800

single

17x17

81.0

668.9

8.3

600x800

double

7x7

59.1

357.2

6.0

600x800

double

17x17

87.2

695.5

8.0

 

Function Name

Image Size

Image Type

Connectivity

AL Time [msec]

Matlab Time [msec]

Performance Gain

ImReconstruct

600x800

logical

4

2.2

121.2

54.1

600x800

logical

8

2.4

182.9

76.1

600x800

uint8

4

6.0

149.7

25.1

600x800

uint8

8

8.3

211.0

25.4

600x800

single

4

10.0

150.9

15.1

600x800

single

8

10.9

213.0

19.5

600x800

double

4

54.7

177.6

3.2

600x800

double

8

40.6

226.0

5.6

ImRegionalMax

600x800

uint8

4

16.9

117.0

6.9

600x800

uint8

8

30.9

131.6

4.3

600x800

single

4

19.9

85.3

4.3

600x800

single

8

33.8

130.0

3.8

600x800

double

4

21.9

87.9

4.0

600x800

double

8

39.1

185.5

4.7

ImRegionalMin

600x800

uint8

4

18.2

82.4

4.5

600x800

uint8

8

30.7

127.2

4.1

600x800

single

4

24.3

88.7

3.7

600x800

single

8

36.4

136.5

3.8

600x800

double

4

25.4

94.3

3.7

600x800

double

8

43.4

134.7

3.1

ImClearBorder

600x800

uint8

4

7.6

209.1

27.5

600x800

uint8

8

10.1

320.1

31.6

600x800

single

4

13.4

227.4

17.0

600x800

single

8

17.9

342.1

19.1

600x800

double

4

53.6

242.8

4.5

600x800

double

8

59.2

356.9

6.0

ImHMax

600x800

uint8

4

5.3

138.4

26.3

600x800

uint8

8

5.6

200.1

36.1

600x800

single

4

6.1

125.3

20.6

600x800

single

8

7.3

193.4

26.4

600x800

double

4

24.0

132.3

5.5

600x800

double

8

27.2

204.6

7.5

ImHMin

600x800

uint8

4

6.6

181.8

27.6

600x800

uint8

8

6.8

237.4

35.1

600x800

single

4

8.7

131.0

15.0

600x800

single

8

9.5

199.1

21.0

600x800

double

4

32.6

138.7

4.3

600x800

double

8

32.2

212.8

6.6

ImExtendedMax

600x800

uint8

4

16.6

210.3

12.6

600x800

uint8

8

24.3

315.1

13.0

600x800

single

4

14.9

181.8

12.2

600x800

single

8

16.5

277.7

16.9

600x800

double

4

30.9

186.8