Bit Map Compressor

win app to economize bit map memory for OLED Displays

Bit Map Compressor R.Meurer 2018-10-11

Purpose

  1. Convert the bit maps into C-code.
  2. Use this tool to compress the bit map C-code down to 20 – 30 %
  3. Use the PROGMEM function to host the compressed bit map C-code

Tools

  1. LED Assistant http://en.radzio.dxp.pl/bitmap_converter
  2. BMC Bit Map Compressor http://www.midisoft.de/downloads/BMC.zip

1 st usage of LED Assistant:

  1. Set up: Vertical, NO Size, Little Endian, 8 Pixel/Byte
  2. load the bit map 3. save the C-code as *.h

2 nd usage of BMC Bit Map Compressor Drag & Drop folder batch:

  1. Drop a folder or file(s) generated by the LED Assistant onto BMP
  2. If you drop a folder, then everything will be done automatically.
  3. In the folder you’ll find all the compressed files, saved as *.cmp
  4. Resuming your have your IDE e.g. ARDUINO open,
  5. Open the *cmp files with a text editor and copy the C-code into your IDE

3 rd usage of BMC Drag & Drop single, or multiple *.h files

  1. In this case, it’s your choice to select the files to process.
  2. Multiple files also will automatically be saved within the source folder.
  3. If you drop a single file only, then you can mark the C-code of the Output Window and copy it into your IDE, without saving it to disc.
  4. You can also Drag the marked Output C-code and drop it into your IDE

4 th usage of BMC Load *.h, compress, save

  1. Also available is the old fashion method, load, compress and save.
  2. The advantage of this purpose is to choose the directory where to save to.

What's in the zip folder

BMC_14.zip contains the Bit map Code compressor. It's a windows exe which can read 'LED Assistant' h files by drag & drop.There are 2 folders with successfully tested h files with bit map images of waveforms: Sine Wave, Square Wave Saw Wave and several digital waveforms for a 64x48 monochrome OLED graphic display. The goal is to save PROGMEM memory to host as many as possible 64x48 bit map graphics within an ATtiny85. In order to do this, start the BMC software. You can drag & drop an entire folder with many LED Assistant h files on to the BMC input window. The Bit Map Compressor then will do its job automatically. The compressed files then have only 20% - 30% of the original size. After the job is done, you'll find the Arduino ready RROGMEM text files in the same folder where the h files coming from but with a cmp file extension. open the cmp text files and drag & drop its content into your Arduino sketch. You find an Arduino example sketch within this zip folder. This sketch contains the Decompressor to expand the PROGMEM data back to full-size within the ATtiny85 Display print procedure. Without this compression method you only can host approx 5 or 6 bit map images in an ATtiny85. With this compressing method you can host about 24 bit map images in an ATtiny85. how ever, try it an you'll be surprised.


Was ist im Zip-Ordner

BMC_14.zip enthält den Bitmap-Code-Kompressor. Es ist eine Windows-Exe, die 'LED Assistant'-Dateien per Drag & Drop lesen kann. Es gibt 2 Ordner mit erfolgreich getesteten h-Dateien mit Bitmap-Bildern von Wellenformen: Sinuswelle, Rechteckwellen-Sägewelle und mehrere digitale Wellenformen für eine monochrome 64x48-OLED-Grafikanzeige. Ziel ist es, PROGMEM-Speicher zu sparen, um so viele 64x48-Bit-Map-Grafiken wie möglich in einem ATtiny85 zu hosten. Starten Sie dazu die BMC-Software. Sie können einen ganzen Ordner mit vielen LED Assistant h-Dateien per Drag & Drop in das BMC-Eingabefenster ziehen. Der Bitmap-Kompressor erledigt dann seine Arbeit automatisch. Die komprimierten Dateien haben dann nur 20% - 30% der Originalgröße. Nachdem der Auftrag abgeschlossen ist, finden Sie die Arduino-fähigen RROGMEM-Textdateien in demselben Ordner, aus dem die h-Dateien stammen, jedoch mit einer cmp-Dateierweiterung. Öffnen Sie die CMP-Textdateien und ziehen Sie den Inhalt per Drag & Drop in Ihr Arduino-Sketch. In diesem Zip-Ordner finden Sie ein Arduino-Beispiel Sketch. Dieses Sketch enthält den Dekomprimierer, mit dem die PROGMEM-Daten im ATtiny85 für das Display wieder in voller Größe expandiert werden. Ohne diese Komprimierungsmethode können Sie nur ca. 5- oder 6-Bit-Maps in einem ATtiny85 hosten. Mit dieser Komprimierungsmethode können Sie ungefähr 24-Bit-Maps in einem ATtiny85 hosten. Probieren Sie es aus und Sie werden überrascht sein.