From: alain gautherot <[email-masked]>
Date: Mon, 3 Feb 1997 17:43:24 GMT

14th december 1996

Hi,

this little application called Viou (find a better name if you want)
was written in only a few days (a week in fact).
This was first aimed to extract a 128x128 bitmap from a BBitmap.
I finally decided to extend the primary features.

HOW TO USE:

Just drag a Be Bitmap file on it.

FEATURES:

The actual list follows:

- extracting BBitmap from other BBitmap
- exporting raw format
- importing raw and -a few- BeFormat files
- converting to 8-bits colors or 8-bits gray scale
- convolution on 24 and 8 bits colors BBitmap
- thresholding Grayscale BBitmap
- dilating monochrom BBitmap
- eroding monochrom BBitmap

All these routines have been tuned (well, as much as C++ allow it)

BENCHMARKS:

The routines are written entirely in C++, but are quite tuned as well.

This application was used to benchmark the DSP56001 and DSP56301 against
a PowerPC RISC processor, for my end graduate project.
Results follows:

the routines on the DSP (56001 or 56301 were written in assembly
language and tuned)
These routines use intensively polynomials calculus, that is what the
DSPs have been designed for. This explains why the PowerPC are
outperformed.

The columun 2 is the number of clock cycles needed to perform the
computation.

The column 3 is the amount of time needed to perform the algorithm

The column 4  is the number of frames that could be computed per second.

*** 3d points rotation

56001/32	56n+16		571500 vertex/s		22900 v/s for 25 fps
56301/66	25n+8		2640000 v/s			105600
PPC603/66	?			537634 v/s			21505

*** blending 24 bits hxl bitmap

56001/32	(62l+10)h+12	123 ms			8 fps
56301/66	(30l+4)h+5		30 ms			33 fps
PPC603/66	?				145 ms			7 fps

*** 24 bits to 8 bits hxl grayscale conversion

56001/32	(20l+22)h+24	41 ms			24 fps
56301/66	(10l+10)h+10	10 ms			100 fps
PPC603/66	?				174 ms			6 fps

*** 24 bits hxl bitmap convolution

56001/32	(204l+24)h+24	417 ms			2.5 fps
56301/66	(100l+10)h+10	99 ms			10 fps
PPC603/66	?				605 ms			1.7 fps

*** 8 bits hxl bitmap convolution

56001/32	(30l+22)h+24	62				16 fps
56301/66	(15l+11)h+10	15				67 fps
PPC603/66	?				303				2.6 fps

*** 8 bits bitmap hxl thresholding

56001/32	(12l+16)h+26	25 ms			40 fps
56301/66	(5l+8)h+13		5 ms			200 fps
PPC603/66	?				131 ms			7.7 fps

*** Binary hxl bitmap erosion

56001/32	(906l/24+32)h+30	78 ms		13 fps
56301/66	(452l/24+16)h+15	19 ms		53 fps
PPC603/66	?					41 ms		24 fps

*** Binary hxl bitmap dilatation

56001/32	(708l/24+32)h+30	61 ms		16 fps
56301/66	(353l/24+16)h+15	15 ms		68 fps
PPC603/66	?					46 ms		22 fps

HANDLED & GENERATED FORMAT:

Some Be format files can't be loaded. As I didn't know about the
actual format, I had to find it by myself.

The format of raw formats is as follows:

4 bytes: type of the file
	Tc24 for 24 bits bitmaps
	Cl08 for 8 bits colors bitmaps
	Gs08 for 8 bits gray scale bitmaps
	Mc01 for 1 bit colors bitmap

2 bytes: width of the bitmap in pixel

2 bytes: height of hte bitmap in pixel

n bytes: data of the bitmap
	for Tc24, the pixel data is: blue, green, red, & alpha band
	for 8 bits format: index of the color
	for 1 bit format: 1 bit per pixel

	This is the actual format of BBitmap in memory.

CONTACT, SUGGESTION, INFO:

[email-masked]