bmp2rle Code
Encode bitmap(bmp) file with run-length encoding
Status: Beta
Brought to you by:
laizhefeng
File | Date | Author | Commit |
---|---|---|---|
branches | 2013-01-16 | allura | [r1] Initial commit |
tags | 2013-01-16 | allura | [r1] Initial commit |
trunk | 2013-01-16 | allura | [r1] Initial commit |
LICENSE | 2013-02-03 | laizhefeng | [r2] Initial commit |
NOTICE | 2013-02-03 | laizhefeng | [r2] Initial commit |
README | 2013-02-03 | laizhefeng | [r2] Initial commit |
bitmap.h | 2013-02-03 | laizhefeng | [r2] Initial commit |
bmp2rle.c | 2013-06-25 | laizhefeng | [r3] add the apache license head lines. |
bmp2rle.dsp | 2013-02-03 | laizhefeng | [r2] Initial commit |
bmp2rle.dsw | 2013-02-03 | laizhefeng | [r2] Initial commit |
bmpstreamlib.lib | 2013-02-03 | laizhefeng | [r2] Initial commit |
queuebuf.c | 2013-06-25 | laizhefeng | [r3] add the apache license head lines. |
queuebuf.h | 2013-06-25 | laizhefeng | [r3] add the apache license head lines. |
rle.h | 2013-06-25 | laizhefeng | [r3] add the apache license head lines. |
rle_decompress.c | 2013-06-25 | laizhefeng | [r3] add the apache license head lines. |
Encode bitmap(bmp) file with run-length encoding(RLE), just like RLE4 and RLE8, but extend to RLE16, RLE24 and RLE32. Usually, this project will be used in GUI of embedded system, to make the image files smaller, and save the IO bandwith. If the GUI support JPG or PNG, the compression ratio is much better than RLE, but how about the embedded system encounters both caculate limitation and IO bandwidth limitation? Try this project, I hope it can make a banlance between caculation and bandwidth. But first of all, you should know that the compression ratio of RLE is highly depend on the bitmap file data, the ratio can larger than 1, only when the same color continuously repeats in one line, it will gain a smaller compression ratio. Look in this URL to get more information about run-length encoding http://en.wikipedia.org/wiki/Run-length_encoding This compression is not a standard bmp file format. If you want to used this project in your work, you can compress the image file in you PC first, then compile the rle_decompress.c file into you embedded software. Please **NOTE** that, you should run a benchwork first to make sure this compression really makes your program run faster before you decide to used it in your product. bmp2rle.dsw and bmp2rle.dsp is the example project build with Microsoft Visual C++ 6.0. Below is my test result Total Files Total File Size 939 103,615,696 Compress without palette Compress Files(ratio < 1) Total File Size Before Compress Total File Size After Compress 738 81,400,208 29,796,894 Compress with palette Compress Files(ratio < 1) Total File Size Before Compress Total File Size After Compress 884 103,294,188 35,542,056 Any problem, please contact LaiZhefeng@gmail.com.