RLE

Recommendation

Has Potential

Link

http://www.cs.sjsu.edu/faculty/khuri/animation.html

Delivery Method

Java Application

License

Language

English

Author

Sami Khuri

Institution

San Jose State University

Project

StandAlone

RelationshipToProject

StandAlone

Works

Yes

Description

This is a stand alone application that visualizes five different approaches to run length encoding a bitmap image: row by row, column by column, zig-zag, Hilbert curves, and Sierpinkski curves. The main animation shows a sample bitmap with a red line that traces a path across it. On the side, a text pane shows the compressed output as well some statistics like the compression ratio. The main controls are fairly basic: Step, Run, Stop and Reset. There is a speed control in the menu, as well as a way to switch the red line to numerical output. In addition, the user can switch between four canned input sizes: 8x8, 16x16, 32x32 and 64x64 or load a his or her own bitmap.

Evaluation

In general, this is a fairly well put together tool. The interface is fairly clean and straightforward and generally seems quite solid. There is a good collection of algorithms and I like the mixture of default input sets and the possibility of self generated input. Unfortunately, I find that I can't recommend it unconditionally. As much as I like the idea of being able to load unique bitmaps, there is little guidance for producing bitmaps that would be acceptable and enough variables to make this a confusing process. I think an opportunity was lost here. The largest bitmap this accepts is 64x64, and it would have been fairly simple to allow the user to turn pixels on and off with the mouse. It seemed like such an obvious feature that I started clicking on squares in the belief that it should work. I think this is especially important because many of the RLE algorithms are very susceptible to data it is encoding. Another problem I had was the speed - the fastest speed was far too slow to let it complete the 64x64 image and the slowest speed is glacial. I also found the speed control to be one of the few places where the interface fell down. It is a simple slider that pops up in its own window and is labeled rather mysteriously from 200 to 1200 with no explanation as to what the numbers mean. An important point about this visualization is that it really is targeted at demonstrating the concept rather than the implementation. There is some short documentation that very briefly describes what is going on, but that is about it. For the first three algorithms, the implementation should be fairly obvious, but implementing the Hilbert and Sierpinski curves in an efficient way is not at all obvious from this visualization. It is also worth noting that this is only one approach to the output encoding and it only works for binary data. While it is not hard to encode more complex data with RLE, I think after seeing this output, many students wouldn't easily make the intuitive jump to how non-binary data could be encoded. I think that this would best be used in lecture situation as a tool to help visualize the process as a supplement to the explanation. Once students got the general idea, I think it is a reasonable tool for exploration as it allows them to enter their own data and try multiple algorithms on the same data set, but I see this primarily as a lecture aid.

ActivityLevel

GoodFor

Exploring the Concept

Screenshots

Videos

References

HowToUse

First Visited

Last Visited

2008-04-23

Last Updated

2000-04-01

Topic

RunLengthEncoding

Community

Average rating: unrated
Your rating:You must be logged in to Rate.
Comments

Edit

You may edit this entry if you have an account.