| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| LZW.cs | 2014-07-25 | 39.2 kB | |
| README.txt | 2014-07-24 | 2.3 kB | |
| Totals: 2 Items | 41.6 kB | 0 |
-------------------------------------------------------------------------------
LZWStream - The LZW algorithm in C#
-------------------------------------------------------------------------------
1. INTRO
1.1 ABOUT
Implementation of the LZW algorithm in C#, adhering to the built-in
System.IO.Compression.
The algorithm and code is much improved, compared to projects like
SharpLZW.
The LZW algorithm is for arbitrary lossless data compression and
are noticeable for simplicity and low (compared to others) memory
consumption. Making it interesting for eg. embedded use.
There're many other LZW implementations out there. This one is focused on
KISS and C#.
This document is subject to change.
1.3 CREDITS
The projected is created by me, Morten Kvistgaard, anno 2014.
Original work is based on SharpLZW: https://sourceforge.net/projects/sharplzw
And Mark Nelson: http://marknelson.us/2011/11/08/lzw-revisited/
2. USAGE
The library consists of a single C# file: LZW.cs
- Include the file in your own project.
- Compile.
Be aware of the legal issues connected to the LZW algorithm.
3. TECHNICAL
3.1 ALLOCATIONS
The algorithm will do a lot of allocations/frees due to the "ByteString"
implementation. Though, no more than normal string manipulations and usage.
3.2 ADAPTIVE DICTIONARY DROP
The algorithm could profit from a "drop dictionary" symbol. This is not
implemented. This could let the encoder rebuild the dictionary whenever
it's full, thereby readjusting to the new data layout and improve the
compression.
4. TESTS
The algorithm is tested with the Canterbury file collection.
It hasn't been tested against any 3rd party implementations.
5. SUPPORT
There's no support for the project at this time. That's reserved for our
customers. If you write to me, I'm unlikely to answer.
6. REPORT ERRORS
Yeh, there be errors alright. There always are. Try writing to me
at mk@pch-engineering.dk.
7. CONTRIBUTE
Really? You think it's missing something? It's not really meant as a huge
glorified project you know, but if you really must, try contacting me
at mk@pch-engineering.dk.
8. MISC
Project web page is located at:
https://sourceforge.net/projects/lzwstream/